Matlab保存数据到csv文件的方法分享

2022-07-27 09:45:14 浏览数 (1)

一个同学咨询了一个问题,如何把matlab变量区的数据保存到csv文件里面,故此分享一下Matlab保存数据到csv文件的方法。csv其实也是一个txt,只不过csv是带特定格式的txt而已,举个例子,编辑一个txt文件,内容如下

把这个文件名后缀修改为csv,新建 文本文档.csv,则用excel打开

所以在matlab中保存为csv其实和保存为txt方法类似

1、方法1:table

代码语言:javascript复制
%需要保存的矩阵
A=[1 2 3;4 5 6; 7 8 9];
%行名称
m=['m1';'m2';'m3']; 
%列名称
col={'test' 'c_1', 'c_2', 'c_3'}; 
%生成表格,按列生成
result_table=table(m,A(:,1),A(:,2),A(:,3),'VariableNames',col);
%保存表格
writetable(result_table, 'test.csv');

采用把数据拼装为table类型,然后writetable

如果不需要设置表头这些,直接输入

代码语言:javascript复制
result_table1=table(A)
writetable(result_table1, 'test1.csv');

但注意一下,writetable也会按照变量名称生成一个表头,这个暂未找到如何取消,懂得朋友可以私信我一下方法

2、fopen

csv格式是用逗号分隔数据的一种文件。一行之间的数据用逗号分隔,行与行之间用n分隔。用MATLAB将数据写入csv文件时,首先用fopen创建一个有写入权限的文件,然后用fprintf函数将数据逐一写入。不换行的数据用逗号分隔,换行时用n。

代码语言:javascript复制
fid = fopen('test.csv', 'w ', 'n', 'utf8');    % 创建一个csv文件
for i=1:3
    fprintf(fid, '%d,%d,%dn', A(i,1),A(i,2),A(i,3)); % 一行3个数据,用逗号分隔;每行结束后加上n换行
end

用fprint的方法就不存在方法1中自动生成表头的问题

0 人点赞