2011-11-18 30 views
2

如果我有尺寸[MN]的矩陣,並且我需要導入基質成製表符分隔的.txt文件我會用:帶有頭部的矩陣轉換爲.txt文件

dlmwrite(文件名,數據,'delimiter','\ t');

但是,如果我需要在.txt文件的每列之上添加一個標題,我需要做什麼?在那裏我需要定義每個指向不同數據集的單獨列。

感謝

+1

這是什麼語言? (你應該相應地標記它) – jonsca

+0

對不起,語言是matlab(2011b)。 – user1053544

回答

2

Silvado有正確的想法。這裏是一個黑客,我從時間使用時間:

outfile = '/path/to/file/output.out'; 
data = magic(5); 
header='feat1,feat2,feat3,feat4,feat5'; 
dlmwrite(outfile,header,'delimiter',''); 
dlmwrite(outfile,data,'delimiter',',','-append'); 

結果與標題爲第一行csv文件。請注意,hack是將''的空分隔符與預編譯頭一起傳遞給dlmwrite(您可以在循環中創建它以自動化)。如果性能是一個大問題,那麼使用低級函數可能會更好。

+0

儘管這可以將數據導入.txt文件,但輸出的格式並不是我所需要的。輸出全部在一行中,而不是與「數據」矩陣的維度相同。 – user1053544

+0

你可能想檢查你的矩陣。 dlmwrite維護矩陣格式,請參閱http://www.mathworks.com/help/techdoc/ref/dlmwrite.html –

1

你可能需要先寫列標題使用低級別的文件IO,例如fprintf。然後,您可以使用'-append'選項在dlmwrite的同一文件中編寫矩陣。

1

我更喜歡save生成的很好對齊的列,並且使用dlmwrite只是爲了使標題正確。

outfile = '/path/to/file/output.out'; 
data = magic(5); 
header='feat1 feat2 feat3 feat4 feat5'; 
dlmwrite(outfile, header, 'delimiter', ''); 
save(outfile, data, '-ascii', '-append');