0

在我使用过的不同文本文件中获取相似文件ismember()

file1 = {'DSC01605.bmp';'Hampi8.bmp';'DSC01633.bmp';...
 'DSC01198.bmp';'DSC01619.bmp'}

file2 = {'DSC01605.bmp';'Hampi8.bmp';'DSC01633.bmp'}

file3 = {'DSC01605.bmp';'Hampi8.bmp'}

matching12 = ismember(file1, file2)
matching13 = ismember(file1, file3)
matchesAll3 = matching12 & matching13

allMatchingStrings = file1(matchesAll3)

现在allMatchingStrings包含

'DSC01605.bmp'
'Hampi8.bmp'

如何将这些文件写入新的文本文件all.txt?我的要求的问题是 - 假设allMatchingStrings包含大约 10 个文件,但我只需要这 10 个文件中的 5 个。我需要将 5 个文件保存到一个新的文本文件中,比如all.txt. 我怎样才能做到这一点?

4

1 回答 1

0

将它们写入磁盘的一种快速方法是使用 fprintf 命令。

fid = fopen('all.txt', 'w');
fprintf(fid, '%s\n', allMatchingStrings{:});
fclose(fid);

如果您只想写入前 2 个文件名,allMatchingStrings则可以这样限制:

filenamesIWant = 1:2;
fid = fopen('all2.txt', 'w');
fprintf(fid, '%s\n', allMatchingStrings{filenamesIWant});
fclose(fid);

这是有效的,因为 fprintf 命令对您给它的每个字符串都重复。唯一的技巧是将大括号放在正确的位置。

于 2013-08-26T21:21:44.417 回答