MATLAB:组合文本文件

时间:2015-09-22 07:32:51

标签: matlab

我想要合并'n'文本文件。

% Content of files  ('its is just dummy code')
file1.txt
19.09.2015 1 2 3 4

file2.txt
 20.09.20155 2 3 7

file3.txt
 21.09.2015 6 9 3 8

file4.txt %empty file

[FileNames,PathName] = uigetfile('*.txt','Select the txt file', 'MultiSelect', 'on');

Ofilestr='combinefile.txt'; % open an empty file to merge all
fileID = fopen(Ofilestr,'w');
fclose(fileID);
nbfiles =length(FileNames);
for it=1:nbfiles 
    file=FileNames{1,it};
% system('copy file+Ofilestr  Ofilestr') %% %% not working
     system(['copy' file+Ofilestr  'Ofilestr']) %% %% not working
end

任何想法。这个问题的另一个解决方案。

2 个答案:

答案 0 :(得分:1)

那怎么回事呢?

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')

无论如何,似乎已经有很多回答这个问题

这里有一些其他的尝试:

http://www.mathworks.com/matlabcentral/answers/10916-combine-multiple-text-files-into-one-text-file

http://www.mathworks.com/matlabcentral/answers/144284-simultaneously-merging-and-editing-multiple-text-files

答案 1 :(得分:1)

奇怪的是,我无法在StackOverflow上找到副本。

我假设您使用@Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); final SearchView searchView = (SearchView) MenuItemCompat.getActionView(menu.findItem(R.id.action_search)); SearchManager searchManager = (SearchManager) getSystemService(SEARCH_SERVICE); searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); return true; } 表示您正在寻找适用于Windows的解决方案。来自Unix背景,我会使用copy。 Windows上的system(['cat ' FileNames{n} ' >> ' Ofilestr]);应该接近replacement for cat,因此以下内容应该可以实现您的目标。

type

对于Unix解决方案,只需将[FileNames, PathName] = uigetfile('*.txt', 'Select the txt file', 'MultiSelect', 'on'); Ofilestr = 'combinefile.txt'; fileID = fopen(Ofilestr,'w'); fclose(fileID); for n = 1:numel(FileNames) system(['type ' FileNames{n} ' >> ' Ofilestr]); end 更改为type

如果你想要一个纯粹在MATLAB中的便携版本,那么这就是我的目标

cat

上述两种解决方案都会导致输出文件包含

[FileNames, PathName] = uigetfile('*.txt', 'Select the txt file', 'MultiSelect', 'on');

Ofilestr = 'combinefile.txt';
fileID = fopen(Ofilestr,'w');

for n = 1:numel(FileNames)
    fwrite(fileID, fileread(FileNames{n}));
end
fclose(fileID);

注意:我不建议使用

19.09.2015 1 2 3 4
20.09.20155 2 3 7
21.09.2015 6 9 3 8

清空文件的内容。我会改为将上面的代码改编为

Ofilestr = 'combinefile.txt';
fileID = fopen(Ofilestr,'w');
fclose(fileID);