将Matlab中的矩阵数据存入csv文件时的精度丢失问题及解决办法

1.问题描述

将matlab中的矩阵数据存入csv文件的时候难免会遇到小数点后面的数值丢失的问题,通常的说就是精度丢失或者缺损。就拿今天遇到的问题来说吧!
我有一个RNA和disease的嵌入矩阵,将之存入csv文件。

下面展示一些 代码片
矩阵数据

//利用csvwrite()写入csv文件
csvwrite('dis_vectors.csv',dis_vectors)

存入的csv文件数据如下:
存入的矩阵数据
这里很明显的产生了数据的丢失,也说明用csvwrite()存入数据时会产生数据的保存小数点后面位数的舍入现象。特别是在一些要求精度计算的实验时,精度损失是很影响实验结果的

2.解决办法

定义一个writematrix()函数进行逐行写入文件。
下面展示一些 代码片

// writematrix()
%   writeMatrix.m
function writeMatrix(A, path)
[row, col] = size(A);
fid = fopen(path, 'w');
for i=1:row
    for j=1:col-1
        fprintf(fid, '%f\t', A(i,j));
    end
    fprintf(fid, '%f\r\n', A(i,col));
end
fclose(fid);
end
//调用该函数
writematrix(dis_vectors,'dis_vectors.csv')

结果如下:
矩阵数据
所以,我们在matlab中将矩阵数据存入csv文件时最好用逐行写入文件的方式来保存数据

  • 8
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值