MATLAB讀取寫入文字資料最佳方法 | Best Method for Loading & Saving Text Data Using MATLAB

天靖居士發表於2017-11-05

MATLAB讀取檔案有很多方法。然而筆者在過去進行資料處理中,由於函式太多,相互混雜,與C#,Python等語言相比,反而認為讀取文字資料比較麻煩。C#和Python等高階語言中,對於大部分的文字資料,都是一行一行讀取,再使用字串根據特定的符號進行分割。其實MATLAB中也有類似的方法,在此記錄。
筆者所謂的文字資料檔案,指的是類似於csv檔案格式的資料。一行檔案代表的就是一條資料,一條資料中不同欄位用符號分隔開。但不一定是逗號相分割,也可能是使用其他符號,例如\t進行分割。
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','\t');

MATLAB中寫入此類文字資料方法:csvwrite/dlmwrite()方法
兩者的差異在於csvwrite()方法預設分割符號為逗號','.而dlmwrite()方法可以自由設定分割符號。A為需要寫入的資料。

csvwrite('Test.txt',A);
dlmwrite('Test.txt',A,'\t');

相關文章