MATLAB读取文件有很多方法。然而笔者在过去进行数据处理中,由于函数太多,相互混杂,与C#,Python等语言相比,反而认为读取文本数据比较麻烦。C#和Python等高级语言中,对于大部分的文本数据,都是一行一行读取,再使用字符串根据特定的符号进行分割。其实MATLAB中也有类似的方法,在此记录。
笔者所谓的文本数据文件,指的是类似于csv文件格式的数据。一行文件代表的就是一条数据,一条数据中不同字段用符号分隔开。但不一定是逗号相分割,也可能是使用其他符号,例如 进行分割。
MATLAB中读取此类文本数据方法一:fgetl()方法
fid=fopen('Test.txt','r');
line=fgetl(fid);
while ischar(line)
disp(strsplit(line,','))
end
fclose(fid)
MATLAB中读取此类文本数据方法二:csvread/dlmread()方法
两者的差异在于csvread()方法默认分割符号为逗号','.而dlmread()方法可以自由设定分割符号。
data=csvread('Test.txt');
data=dlmread('Test.txt',' ');
MATLAB中写入此类文本数据方法:csvwrite/dlmwrite()方法
两者的差异在于csvwrite()方法默认分割符号为逗号','.而dlmwrite()方法可以自由设定分割符号。A为需要写入的数据。
csvwrite('Test.txt',A);
dlmwrite('Test.txt',A,' ');