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://www.cnblogs.com/rainbow70626/p/10776760.html