matlab读取cvs文件的几种方法?

matlab读取CVS文件的几种方法:

1,实用csvread()函数

csvread()函数有三种使用方法:

1、M = csvread('filename')

2、M = csvread('filename', row, col)

3、M = csvread('filename', row, col, range)

第一种方法中,直接输入文件名,将数据读到矩阵M中。这里要求csv文件中只能包含数字。

第二种方法中,除了文件名,还指定了开始读取位置的行号(row)和列号(col)。这里,行号、列号以0开始计数。也就是说,row=0, col=0表示从文件中第一个数开始读。

第三种方法中,range限定了读取的范围。range = [R1 C1 R2 C2],这里(R1,C1)是读取区域的左上角,(R2,C2)是读取区域的右下角。在使用这种方法时,要求row, col等于range中的前两项。

注意:csv文件中的空项,读到矩阵中时,会初始化为0.

2、使用textscan函数

在使用textscan函数前必须用fopen函数打开CSV文件。textscan函数读取的结果会存在cell数组中。

调用格式

C = textscan(fid, 'format')

C = textscan(fid, 'format', N)

C = textscan(fid, 'format', param, value, ...)

C = textscan(fid, 'format', N, param, value, ...)

C = textscan(str, ...)

[C, position] = textscan(...)

关于textscan函数的具体用法见help textscan。

3、当成数据库使用

具体方法可以去百度“matlab 数据库编程”

4,使用importdata('myfile.cvs')

5,使用fgetl()函数,当成普通的txt文件读取。

fidin=fopen('test.txt'); % 打开test2.txt文件

fidout=fopen('mkmatlab.txt','w'); % 创建MKMATLAB.txt文件

while ~feof(fidin) % 判断是否为文件末尾

tline=fgetl(fidin); % 从文件读行

if double(tline(1))>=48&&double(tline(1))<=57 % 判断首字符是否是数值

fprintf(fidout,'%s\n\n',tline); % 如果是数字行,把此行数据写入文件MKMATLAB.txt

continue % 如果是非数字继续下一次循环

end

end

fclose(fidout);

MK=importdata('MKMATLAB.txt'); % 将生成的MKMATLAB.txt文件导入工作空间,变量名为MK,实际上它不显示出来

6,拖动到Matlab的工作区内

如果文件中全部都是数据的话,可以直接将数据拖动到Matlab的工作区内。

加载后出现下面的数据列表。

在保证所有数据都被选中的情况下,在工具栏的“导入的数据”中选择要导入数据的类型,如果全部为数据,则可以导出为列矢量或者数值矩阵。