赞
踩
这里一共给出了四种读取csv文件的方法,csvread,importdata,textscan和uiopen,个人觉得最好用的是最后一种可以读取字符数据,小伙伴们可以直接pass前面的
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 中国
f=importdata(filName);
体验一般,不多说。
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
这个是我目前觉得最好用的。
在命令行输入以下代码,或者直接将需要处理的文件拖进这里就行
按照步骤生成一个函数文件,该函数的三个参数分别是函数名,起始行和结束行。该函数会读取目标文件的起始行到结束行的数据,以矩阵的形式导出结果。这样只要利用这个函数就可以批量的读取同类型的csv文件。
得到矩阵后再进行其他操作就方便多了。
这里的array就是存储了数据的矩阵。
MATLAB链接:打开文件选择对话框并将选定的文件加载到工作区中 - MATLAB uiopen - MathWorks 中国
好久没有发文章了,其实也有一直做笔记(偶尔...)。希望能对大家有用,如果哪里不对还望指正,我也是自己瞎琢磨。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。