MATLAB批量读取操作CSV文件(含字符)的几种方法

        这里一共给出了四种读取csv文件的方法,csvread,importdata,textscan和uiopen,个人觉得最好用的是最后一种可以读取字符数据,小伙伴们可以直接pass前面的

1.csvread

  • M = CSVREAD('FILENAME') ,直接读取csv文件的数据,并返回给M,这时要求整个csv文件内容全部为用逗号隔开的数字,不能用其他字符。(csv文件默认就是以逗号隔开的数据)

  • M = CSVREAD('FILENAME',R,C) ,读取csv文件中从第R-1行,第C-1列的数据开始的数据(csv文件的行列下标是从0开始的,所以要-1),这对带有头文件说明的csv文件(如示波器等采集的文件)的读取是很重要的。

  • M = CSVREAD('FILENAME',R,C,RNG),其中 RNG = [R1 C1 R2 C2],读取左上角为索引为(R1,C1) ,右下角索引为(R2,C2)的矩阵中的数据。

    这个方法只能用于读取数字,如果是含有字符的数据他就无能为力了

链接:(不推荐)读取逗号分隔值 (CSV) 文件 - MATLAB csvread - MathWorks 中国

2.importdata

        f=importdata(filName);

体验一般,不多说。

3.textscan

C = textscan(fileID,formatSpec)

将已打开的文本文件中的数据读取到元胞数组 C。该文本文件由文件标识符 fileID 指示。使用 fopen 可打开文件并获取 fileID 值。完成文件读取后,请调用 fclose(fileID) 来关闭文件。

file_id = fopen('chem_info.csv');
C = textscan(file_id, '%s%d%f%d', 'Delimiter', ',', 'HeaderLines', 1 );
fclose(file_id);

上述代码中,textscan有4个参数:

file_id :指用fopen打开文件并获取 的fileID 值

‘%s%d%f%d’:指匹配的格式。图1一共四列内容,分别是字符串、整型、浮点型、整型,所以对应’%s%d%f%d’(这里不太方便的样子,如果参数经常修改又很多岂不是很费劲,不清楚该方法有没有对应的解决手段)。更多匹配格式请到官方帮助中心搜索关键字“数值字段”查看。

Delimiter:指分割方式,csv文件以“,”分割

HeaderLines:标题行数,默认为0。这里是1

matlab文档:从文本文件或字符串读取格式化数据 - MATLAB textscan - MathWorks 中国

原文链接:https://blog.csdn.net/weixin_45182000/article/details/111567652

4.uiopen

这个是我目前觉得最好用的。

1.导入文件

在命令行输入以下代码,或者直接将需要处理的文件拖进这里就行

2.生成函数

 按照步骤生成一个函数文件,该函数的三个参数分别是函数名,起始行和结束行。该函数会读取目标文件的起始行到结束行的数据,以矩阵的形式导出结果。这样只要利用这个函数就可以批量的读取同类型的csv文件。

得到矩阵后再进行其他操作就方便多了。

这里的array就是存储了数据的矩阵。

MATLAB链接:打开文件选择对话框并将选定的文件加载到工作区中 - MATLAB uiopen - MathWorks 中国


        好久没有发文章了,其实也有一直做笔记(偶尔...)。希望能对大家有用,如果哪里不对还望指正,我也是自己瞎琢磨。

  • 18
    点赞
  • 116
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

csdn-唯一

谢谢爸爸

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值