马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
我想把在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');
[row_array, ele_count] = fread(file_id,inf,'float',0,'ieee-le');
fclose(file_id);% 关闭文件
plot(row_array);
得到的图是
matlab得到的图
好像Y的值很大很大,是不是数据类型问题。labveiw保存二进制的时候保存的是单精度的浮点类型。接触labview和matlab并不多,所以希望
得到各位朋友的帮组。matlab数据转换部分是网上一个大侠写的,我借用了下。 |