matlab 数据存储成excel文件时的精度问题 |
您所在的位置:网站首页 › 如何设置excel精确位数 › matlab 数据存储成excel文件时的精度问题 |
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() 进行精度转换。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |