MATLAB中的csvwrite函数写入问题

MATLAB中的csvwrite函数写入问题

日常工作中,我们通常要把处理的数据导出,而csv文件以其简易读取的特点被大量采用。笔者在使用MATLAB导出csv文件时遇到了很多坑,今天就记录下来,以便以后查询。也希望本文能帮助到有需求的小伙伴。

MATLAB中的csvwrite函数

MATLAB中的csvwrite函数定义为:

// Write a comma-separated value file.
csvwrite(FILENAME,M);// writes matrix M into FILENAME as comma-separated values.
csvwrite(FILENAME,M,R,C);//writes matrix M starting at offset row R, and column C in the file.

其实也就两种用法:

  1. 将矩阵写入CSV文件中 ,一次性写入,方便快捷;
  2. 将矩阵以指定行列写入CSV文件中 ,行列从0开始。

但是值得注意的是:

  1. 一次只能写入一个矩阵 ,不能同时写入多个矩阵;
  2. 不能写入元胞数组 ,文件的数值形式比较单一;
  3. 只能一次性写入,重复写入即覆盖之前的内容。
  4. 数值的精度比较低

改进方式

使用dlmwrite函数和writetable函数,函数用法这里不做多讲。这两个函数也有一定的缺点。
1.dlmwrite函数虽能增加精度也能在不清除之前内容的方式增加文件内容,但是增加文件内容只能在之后增加,不能在列之后增加。
相关链接:https://ww2.mathworks.cn/matlabcentral/answers/28667-how-to-append-data-or-values-to-an-existing-csv-file.
2.使用writetable函数能输入列标题,但是不能输入行标题
相关链接:[https://www.zhihu.com/question/39707220]

终极方式

试了一大圈,感觉都有局限,还是使用最初级的fprintf函数吧。示例代码:

// Create a csv file
fid=fopen('test.csv','a');
if fid<0
	errordlg('File creation failed','Error');
end
//Write the data
str=["Height","Width","Length"];
data=[12,22,34];
for i=1:3
	fprintf(fid,'%s,%d\n',str(i),data(i));
end
fclose(fid);

测试通过!

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值