Matlab怎么读入csv文件
1、假设有一个数值文件csvlist.dat,数值情况如下图所示。csv文件是一系列以逗号分开的数值,其逗号为英文模式下输入的逗号。当然下面还有许多数值,就不一一列举了。
2、Matlab中是使用csvread命令来读取这些文件。 filename = 'csvlist.dat';aa = csvread(filename);可以看到csv文件中所有的数据均在aa中了。
3、如果要有选择的输出文件中的数据,可以在命令中加入一些指示。接上述结果,输入:bb = csvread(filename,3,5);输出的数据为第4~100行,第6~8列的数据。因为Matlab读取csv数据时,以0为开头第一行第一列。
4、当然,也可以使用如下命令来读取相应的行列:M = csvread('csvlist.dat',1,0,[1,0,4,5]),代表了数据的第1~4行,0~5列的数据。
5、如果文件中全部都是数据的话,可以直接将数据拖动到Matlab的工作区内。加载后出现下面的数据列表。
6、在保证所有数据都被选中的情况下,在工具栏的“导入的数据”中选择要导入数据的类型,如果全部为数据,则可以导出为列矢量或者数值矩阵。下图为导出的列矢量,即每一列单独成为一组数据。
7、下图为导出的数值矩阵,直接以文件中”.“之前的名称命名。完成。
第一种:M = CSVREAD('FILENAME') ,直接读取csv文件的数据,并返回给M,
这时要求整个csv文件内容全部为用逗号隔开的数字,不能用其他字符。
第二种:M = CSVREAD('FILENAME',R,C) ,读取csv文件中从第R-1行,第C-1列
的数据开始的数据,这对带有头文件说明的csv文件(如示波器等采集的文件)的
读取是很重要的。
第三种:M = CSVREAD('FILENAME',R,C,RNG),其中 RNG = [R1 C1 R2 C2],读取
左上角为索引为(R1,C1) ,右下角索引为(R2,C2)的矩阵中的数据。
附注:
一:对于空置的单元,CSVREAD对数据自动置零。
二:根据MATLAB R2010a的帮助,CSVREAD在未来版本中将会被取
代 ( CSVREAD will be removed in a future release. )。
csv就是文本
csvread和xlsread用法还是有些不同的
%Get data from a specified region in a sheet other than the
first sheet:
Numeric=xlsread(‘c:\matlab\work\myspreadsheet’,’sheet2’,’a2:j5’);
M=CSVREAD(‘FILENAME’,R,C) reads data from the comma separated
value formatted file starting at row R and column C. R and C are
zero based so that R=0 and C=0 specifies the first value in the
file.(如果数据行从15行开始,则R=14;从第一列开始则C=0)
M=CSVREAD(‘FILENAME’,R,C,RNG) reads only the range specified by
RND=[R1 C1 R2 C2] where (R1,C1)is the upper-left corner of the data
to be read and (R2,C2) is the lower-right corner. RNG can also be
specified using spreadsheet notation as in
RNG=’A1..B7’;想要确定添加个范围,比如A15:B10014,则RND=[14 0 10013 1]
因为从示波器出来的图需要一些额外的数据处理才行,所以要进行一些运算;这些在得到了返回的M后就是一个数组,直接用就OK比如%找到第2列里面的最大值or最小值
X=max(M(:,2)) or X=max(M(:,2))
%返回最大值所在列的编号
Num=find(M(:,2)==max(M(:,2)))
%得到对应行第1列的值
Y=M(find(M(:,2)==max(M(:,2))),1)
M(:,1)=M(:,1)*1E+08*12.5;
%min=min(M(:,2));
%max=max(M(:,2));
M(:,2)=(M(:,2)-min(M(:,2)))/(max(M(:,2))-min(M(:,2)));
M(:,1)=M(:,1)-M(find(M(:,2)==max(M(:,2))),1);
这样数据就处理完了,然后就是
注意:csvread函数只试用与用逗号分隔的纯数字文件
第一种:M =CSVREAD('FILENAME') ,直接读取csv文件的数据,并返回给M
第二种:M =CSVREAD('FILENAME',R,C) ,读取csv文件中从第R-1行,第C-1列的数据开始的数据,这对带有头文件说明的csv文件(如示波器等采集的文件)的读取是很重要的。
第三种:M =CSVREAD('FILENAME',R,C,RNG),其中 RNG = [R1 C1 R2 C2],读取左上角为索引为(R1,C1) ,右下角索引为(R2,C2)的矩阵中的数据。
注意:matlab认为CSV第1行第1列的单元格坐标为(0,0)