如何在matlab中从一个群体中选择每个循环中的不同样本

时间:2016-05-16 14:42:30

标签: matlab

我有一个序列

A = [1:5]
然后我做了随机排列

B =perms(A);
C = B(randperm(size(B,1)), :)

然后我从整个人群中选择一个随机样本,其中包含5行,如下所示

sample = C(1:5,1:5)

现在我对样本中的每一行进行了操作,

现在我的问题发生在我想从人口中选择一个新样本时,但是我的代码一次又一次地选择相同的样本,直到我的条件结束, 这是我的代码,

clc

clear all

A=[1:5]

B=perms(A);

C = B(randperm(size(B,1)), :)

value_of_cmax = zeros(1,5);

for P=1:24

if P<= 24

sample = C(1:5,1:5)

sample_shuffled = sample(randperm(5),:)

below my operation on each row in sample

else
end

现在,如果循环再次进行第二次,则会再次采样样本..而不是新的。 :(

1 个答案:

答案 0 :(得分:2)

这是因为您没有更新样本的值,并且您反复使用相同的样本值!

如果我已正确理解您的问题,那么这可能有所帮助:

clc
clear all

A=[1:5]
B=perms(A);

value_of_cmax = zeros(1,5);

for P=1:24
  C = B(randperm(size(B,1)), :);
  sample = C(1:5,1:5)

  if P<= 24
    sample_shuffled = sample(randperm(5),:)
  else end
end