将多个文本文件转换为单个输出(Matlab)

将多个文本文件转换为单个输出(Matlab),matlab,Matlab,我是Matlab新手,我正在努力解决一个问题。我有35个文本文件,每个文件都有不同的名称,我想把所有这35个文本文件作为一个文件。每个文件有2列和近2000行 到目前为止,我唯一想到的是使用 for i=1:length(files) eval(['load ' files(i).name ' -ascii']); end 并使用 final = horzcat(AA2,AA3,AA4,MN2,MN4....) 直到我找到最后一个 有没有更简单的方法?在未来,我将使用100多个

我是Matlab新手,我正在努力解决一个问题。我有35个文本文件,每个文件都有不同的名称,我想把所有这35个文本文件作为一个文件。每个文件有2列和近2000行

到目前为止,我唯一想到的是使用

for i=1:length(files)

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

end
并使用

final = horzcat(AA2,AA3,AA4,MN2,MN4....) 
直到我找到最后一个

有没有更简单的方法?在未来,我将使用100多个文本文件,所以手动操作非常耗时


谢谢:)

您可以在MATLAB之外执行此操作:

  • 如果您在OSX/Linux上
  • 如果你在Windows上
如果你真的想坚持使用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')

为什么要在MATLAB中这样做?因为当我这样做时,我可以使用神经网络工具来训练数据。除了Matlab,还有别的方法吗?@Chrysovalando:记住,你可以点击我答案左边的大记号,将我的答案标记为“接受”。很乐意帮忙!非常好,因为它完全避免了评估。如果你必须处理许多已知的行数和2列的文件,你可以考虑预分配。从“代码”> A=零点(数字行,长度(文件)*2)< /C>和分配如下:<代码> A(:,2×Ii-1:2*II)= NeWA</代码>。