我想要合并'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
任何想法。这个问题的另一个解决方案。
答案 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
答案 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);