Matlab輸出寫入文字檔案及csv檔案
阿新 • • 發佈:2019-02-06
下面的一個示例是關於統計每個資料夾下的檔案數目,具體程式碼如下:
clear clc folder_path = 'E:\ori\ImageNet_data'; all_folder = dir(folder_path); fid = fopen('number_of_ImageNet.txt','a+'); for i=1:length(all_folder)-2 folder_name = all_folder(i+2).name; all_file = dir([folder_path filesep folder_name]); fprintf(fid,'%s\t\t%d\n',folder_name,length(all_file)-2); end fclose(fid); dt=importdata('number_of_ImageNet.txt'); T=table(dt.rowheaders,dt.data(:,2)); writetable(T,'number_ImageNet.csv'); T=table(dt.rowheaders,dt.data(:,2),'VariableNames',{'FoldeName','Number'}); writetable(T,'number_by_ImageNet.csv');
在上述原始碼中,
fprintf(fid,'%s\t\t%d\n',folder_name,length(all_file)-2);
此句用來把輸出結果以追加的形式('a+')寫到fid控制代碼指示的文字檔案內,用delimiter='\t\t',得到的寫入結果如下所示:
如果要把fid指示的文字檔案的內容寫入到類似Microsoft Office Excel格式的csv檔案,則需要如下實現:
即先匯入文字檔案,得到的是一個結構體,如下所示:dt=importdata('number_of_ImageNet.txt'); T=table(dt.rowheaders,dt.data(:,2)); writetable(T,'number_ImageNet.csv');
然後採用table函式,製作table型資料,table函式的第一個引數表示csv檔案的第一列資料,依次是第二列等,然後呼叫writetable函式把表格型資料寫入到csv檔案,這個csv檔案不必事先建立。寫入結果如下所示:
其中上圖中的Var1與Var2列變數的名字可以手動修改,也可以在程式中實現,如下程式碼:
T=table(dt.rowheaders,dt.data(:,2),'VariableNames',{'FoldeName','Number'});
其中,'VariableNames',{'FoldeName','Number'}便是為列指定變數名。執行結果如下:
行的變數名可以通過RowNames引數來指定。