2013-07-08 83 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'。 –