2013-07-08 119 views
3

我是Matlab新手,我正在努力解決一個問題。我有35個文本文件,每個文件都有不同的名稱,我想把所有這35個文本文件作爲一個文件。每個文件有2列和近2000行。將多個文本文件轉換爲單個輸出(Matlab)

我已經拿出了迄今爲止唯一的一點是使用

for i=1:length(files) 

    eval(['load ' files(i).name ' -ascii']); 

end 

閱讀文本文件到Matlab,並使用手動

final = horzcat(AA2,AA3,AA4,MN2,MN4....) 

,直到我到了最後一個矩陣。

有沒有更簡單的方法?在將來,我將使用超過100個文本文件,因此手動操作非常耗時!

謝謝:)

+0

爲什麼你想在MATLAB中做到這一點? –

+0

因爲當我這樣做時,我可以使用神經網絡工具來訓練數據。除了Matlab之外,還有其他方法可以實現嗎? – Chrysovalando

回答

2

你能做到這一點MATLAB之外:

如果你真的想堅持MATLAB,

A = []; 
for ii = 1:length(files) 

    % load new contents 
    newA = load(files(ii).name, '-ascii'); 

    % concatenate horizontally 
    A = [A newA]; %#ok 

end 

% save final output 
save('outputFile.txt', 'A') 
+0

非常感謝!對此,我真的非常感激!謝謝! :) – Chrysovalando

+0

@Chrysovalando:只要記住你可以通過點擊我答案左邊的大勾號標記我的答案爲「接受」。樂於幫助! –

+1

非常好,因爲它完全避免了評估。如果你必須處理大量具有已知行數和2列的文件,你可以考慮預先分配A.以'A =零(numberOfRows,length(files)* 2)'開頭,並且像這樣分配:'A(: ,2 * ii-1:2 * ii)= newA'。 –