如何将matlab中的变量保存为csv?
% 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.
R,C分别表示写入的行数R和列数C,并且左上角被认为是(0,0)csvwrite('1.csv',data)
csvwrite('1.csv',data,1,1)
好用,并且能够在不覆盖原有数据的方式,在行后进行添加
dlmwrite('test.csv',data(1,:),'delimiter',',');
dlmwrite('test.csv',data(2,:),'delimiter',',','-append');
dlmwrite('test.csv',data(3,:),'delimiter',',','-append','roffset',2,'coffset',2);
% 可以设置行名称
% 首先创建一个1-n的列向量,具体为行向量的转置
BD1=1:51;
BD2=BD1.';
% 列名称
title={'NO','obj1','obj2'};
%生成表格,按列生成
% VariableNames 参数用于设置列头
result_table=table(BD2,data(:,1),data(:,2),'VariableNames',title)
% 保存数据
writetable(result_table, '2.csv');
fprintf
函数不仅可以向csv文件中输入数据,可以向各种文件中输入数据,是最万能的方法!也是灵活程度最高的方法。% 注意fprintf不支持元胞数组
title={'NO','obj1','obj2'};%这样写会报错
fprintf(fid,'%s,%s,%s\n',title(1),title(2),title(3));
% 参数3有误
% 注意fprintf不支持元胞数组
title={'NO','obj1','obj2'};%这样写会报错
% fprintf(fid,'%s,%s,%s\n',title(1),title(2),title(3));
fprintf(fid,'%s,%s,%s\n',cell2mat(title(1)),cell2mat(title(2)),cell2mat(title(3)));
% Create a csv file
fid=fopen('test2.csv','a');
BD1=1:size(data,1);% size(x,1)表示行数,size(x,2)表示列数
if fid<0
errordlg('File creation failed','Error');
end
% 注意fprintf不支持元胞数组
title={'NO','obj1','obj2'};
% fprintf(fid,'%s,%s,%s\n',title(1),title(2),title(3)); % 这样写会保错
fprintf(fid,'%s,%s,%s\n',cell2mat(title(1)),cell2mat(title(2)),cell2mat(title(3)));
% 一共有51行
for i=1:size(data,1)
fprintf(fid,'%d,%d,%d\n',BD1(i),data(i,1),data(i,2));
end
fclose(fid);
title=['NO','obj1','obj2'];
fprintf(fid,'%s,%s,%s\n',title(1),title(2),title(3));
因此以下才是正确的处理方式
title=['NO','obj1','obj2']; fprintf(fid,'%s,%s,%s\n',title(1:2),title(3:6),title(7:10));
% Create a csv file
fid=fopen('test2.csv','a');
BD1=1:size(data,1);% size(x,1)表示行数,size(x,2)表示列数
if fid<0
errordlg('File creation failed','Error');
end
% 注意fprintf不支持元胞数组
title=['NO','obj1','obj2'];
fprintf(fid,'%s,%s,%s\n',title(1:2),title(3:6),title(7:10));
% 一共有51行
for i=1:size(data,1)
fprintf(fid,'%d,%d,%d\n',BD1(i),data(i,1),data(i,2));
end
fclose(fid);
[1]
数据和代码下载地址: https://github.com/Asurada2015/learn_and_test_matlab/tree/master/res/save_as_csv