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的工作区内。

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

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




参考:

https://jingyan.baidu.com/article/93f9803f2679b0e0e46f55aa.html

http://blog.csdn.net/u013016525/article/details/52045112

http://blog.csdn.net/zhuxiaoyang2000/article/details/7330783



你可能感兴趣的:(matlab读取cvs文件的几种方法)