您的位置:首页 > 编程语言 > MATLAB

matlab 数据存储成excel文件时的精度问题

2018-03-19 21:13 295 查看

matlab 中数据存储为 excel 文件时的精度问题

matlab 中的精度

在使用 matlab 时,我们有时需要将数据从 matlab 中导出来保存为其他格式的文件。比如,常用

的 excel 文件。数据在 matlab 中都是用双精度存储的(默认情况下),但是显示的话则一般是到小数

点后四位,可以通过命令改变在 matlab 中的显示精度。

>> pi
ans =
3.1416


>> format long
>> pi
ans =
3.141592653589793
>>


纯数字文件转换

如果需要存储的是纯数字,即双精度数据,那么存储到 excel 中精度不会改变。
xlswrite('test.xls',pi);




数字文本混合文件

但是,往往我们需要存储的数据中都包含有表头,也就是非纯数字的。这是一般是将原数据通过 cell

这种数据结构进行存储的。如果,没有对数字精度进行控制,而是直接转化为 cell 则在 excel 中的

精度就会收到损失。

title = {'weight'};
w = 1:100;
w = w';
w = w/100;
filename = 'test.xls';
data = [title;num2cell(w)];
xlswrite(filename,data);


可以看到,只到小数点后 两位:



如果需要,更高的精度。那么则需要进行一些转换,主要是先将数字转换为字符,在将字符转换为 cell

数据。

title = {'weight'};
w = 1:100;
w = w';
w = w/100;
w = num2str(w,'%10.5e\n');
w = cellstr(w);
filename = 'test.xls';
data = [title;w];
xlswrite(filename,data);
winopen(filename)


结果如下:



核心是使用 num2str() 进行精度转换。

4000
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: