0

我有以下 MATLAB 代码:

files = dir(fullfile(matlabroot,'toolbox','semjudge',bpic,'*.png')); 
nFiles = numel(files);
combos = nchoosek(1:nFiles, 2);
index = combos(randperm(size(combos, 1)), :); 
picture1 = files(index(nRep,1)).name;
picture2 = files(index(nRep,2)).name;
image1 = fullfile(matlabroot,'toolbox','semjudge',bpic,picture1);
image2 = fullfile(matlabroot,'toolbox','semjudge',bpic,picture2);
subplot(1,2,1); imshow(image1); 
subplot(1,2,2); imshow(image2);

它将给定目录中的图片文件随机化,并将它们呈现在屏幕上。但是,我有两个问题:

1)图片文件的数量很大,我想把它分成3或4个块供主题使用。我该怎么做呢?我不能从不同的目录中提取它们,因为在所有块的过程中,我需要拥有每一个可能的图片对。我不知道如何让 MATLAB 将其拆分为块。

2)我每次运行程序,图片都以相同的顺序呈现?为什么会这样?它应该是完全随机的,对吧?

4

1 回答 1

0

1)我不太明白“分成块”是什么意思,但是为每个“块”使用不同的文件名后缀怎么样?

2)不,您执行此操作的方式是每列的(递增)顺序由强制执行nchoosek,然后您只需置换行。如果你想显示两张随机图片,就像上面的例子,你可以使用randsample(nFiles, 2).

于 2012-04-19T17:52:42.477 回答