首页 > 解决方案 > Matlab fwrite 精度转换

问题描述

single我想将一些数据精确地写入二进制文件。数据最初是double精确的。single通过之前调用single命令转换数据fwrite和让 Matlab 在调用中进行转换之间有什么区别fwrite吗?

情况1

data1 % double precision
fwrite(fid,data1,'single');

案例2

data2=single(data1);
fwrite(fid,data2,'single');

在第二种情况下,Matlab 在写入之前是否对 data2 进行了任何修改,因为它已经是singleformat 了?写入这两个文件的数据会有什么不同吗?

标签: matlabfwrite

解决方案


您应该使用formatSpec来指定格式:

在此处输入图像描述

像这样

A = [6.6,1.11111];
formatSpec = '%4.5f'; % modify it accordingly.
fprintf(formatSpec ,A);

推荐阅读