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

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

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

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

1、方法1:table

%需要保存的矩阵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

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

result_table1=table(A)writetable(result_table1, 'test1.csv');

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

2、fopen

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

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

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

MATLAB可以使用csvread函数来读取csv文件中的数据。然而,csvread函数只能读取纯数值的csv文件,当csv文件中包含字符串等其他类型的值时,csvread函数会跳过该行或该列。\[1\]如果要读取包含其他类型值的csv文件,可以使用textscan函数。例如,可以使用以下代码读取csv文件中的数据: ``` file_id = fopen('chem_info.csv'); C = textscan(file_id, '%s%d%f%d', 'Delimiter', ',', 'HeaderLines', 1); fclose(file_id); ``` 这段代码将打开csv文件,使用textscan函数按照指定的格式读取数据,并将数据存储在变量C中。在这个例子中,格式字符串'%s%d%f%d'表示第一列是字符串,第二列是整数,第三列是浮点数,第四列是整数。逗号是分隔符,HeaderLines参数指定跳过文件的第一行作为标题行。\[2\] 另外,如果csv文件中包含头文件说明,可以使用CSVREAD函数的R和C参数来指定从哪一行和哪一列开始读取数据。例如,可以使用以下代码读取从第2行、第2列开始的数据: ``` M = csvread('FILENAME', 1, 1); ``` 这段代码将从第2行、第2列开始读取csv文件中的数据,并将数据存储在变量M中。\[3\] #### 引用[.reference_title] - *1* *2* [matlab三种方法读取带文本内容的csv文件](https://blog.csdn.net/weixin_45182000/article/details/111567652)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [MATLAB批量读取操作CSV文件(含字符)的几种方法](https://blog.csdn.net/qq_41661878/article/details/119330873)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值