cleess 发表于 2008-1-8 19:13

labview保存数据的一些疑问。

我想把在labview中保存的波形数据读出,然后保存到一个二进制的文件中,再从matlab中读取该二进制文件。
现在遇到问题是:matlab读取的数据好像很不正确。不知道那里错误,希望各位朋友能帮帮我。下面是LABVIEW保存二进制数据的框图和matlab读取二进制的程序。

matlab读取程序如下。
fid=fopen('BinaryFile.dat','r');
%以uchar读取数据
x=fread(fid,'uchar');
fclose(fid);
x=flipud(x);%倒序
fid=fopen('matlab1.dat','w');
fwrite(fid,x);
fclose(fid);
%以float读取数据
fid=fopen('matlab1.dat','r');
y=fread(fid,'float');
fclose(fid);
y=flipud(y);%转置
fid=fopen('matlab.dat','w');
fwrite(fid, y, 'float');
fclose(fid);
%转换结束,Matlab.bat即可以供Malab使用
data_fname = 'matlab.dat'; % 这里是文件名
file_id=fopen(data_fname, 'rb');
= fread(file_id,inf,'float',0,'ieee-le');
fclose(file_id);% 关闭文件
plot(row_array);
得到的图是

好像Y的值很大很大,是不是数据类型问题。labveiw保存二进制的时候保存的是单精度的浮点类型。接触labview和matlab并不多,所以希望
得到各位朋友的帮组。matlab数据转换部分是网上一个大侠写的,我借用了下。

cleess 发表于 2008-1-9 14:37

各位大侠都提提意见或者想法么。。。。

cleess 发表于 2008-1-9 17:06

经过一下午的尝试,该问题已经解决。原因其实就是把数据读入一个矩阵的时候,矩阵设置的太小,不足以容纳那么多数据,只要把矩阵大小该大即可。labview中波形如下图:

用matlab读出后如下所示:

应该是完整的读取了labview中保存的数据。

meiyourenzaia 发表于 2010-4-1 16:49

正好在研究该内容

多谢楼主了,最近正好在研究这个问题
页: [1]
查看完整版本: labview保存数据的一些疑问。