Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 为什么随机化不起作用(MATLAB)?_Image_Matlab_Random - Fatal编程技术网

Image 为什么随机化不起作用(MATLAB)?

Image 为什么随机化不起作用(MATLAB)?,image,matlab,random,Image,Matlab,Random,好吧,这是我第五次不得不问这个问题,但仍然没有人能给我答案或解决方案。但我们又来了 我想运行一个非常简单的小MATLAB程序。它所做的只是随机显示目录中的图像。这是我的密码: files = dir(fullfile(matlabroot,'toolbox','semjudge',bpic,'*.png')); nFiles = numel(files); combos = nchoosek(1:nFiles, 2); index = combos(randperm(size(combos,

好吧,这是我第五次不得不问这个问题,但仍然没有人能给我答案或解决方案。但我们又来了

我想运行一个非常简单的小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);
我尝试了几个不同的迭代,包括用randsample替换nchoosek

但它不起作用!每次我运行程序时,脚本都会以相同的顺序运行相同的图像文件。为什么要这样做?这就像我第一次运行它时,它会随机化图像文件,但现在它只按顺序运行它们,而不是每次运行脚本时都随机化它们


谁能帮我一下吗

伪随机数生成器从特定种子开始。提供的随机数是确定性的。您需要更改种子才能更改这些数字

这样做的好处是,即使在算法中使用伪随机性,也可以通过再次使用相同的种子来重播运行


参考资料:

作为@ypnos答案的详细说明,您可能需要添加一行如下内容:

rng('shuffle');

到代码的开头。这将使用基于时间的值对随机数生成器进行种子设定,然后您将获得不同的随机数序列。

看看这里:我不敢相信您之前已经问了5次这个问题,没有人告诉您一个简单的事实,即matlab每次启动时都使用相同的默认随机种子。所以我回顾了你们过去的问题,你们并没有多次问过这个问题。@woodchips:这个问题我问过多次,但没人告诉我。非常感谢。这个周末我不在城里,没有电脑来检查。