在Matlab中循环麻烦

时间:2013-05-10 05:23:53

标签: matlab loops permutation random-sample

假设给出一个矩阵,比如d。

d=[1.32 4.354 6.78 4.56; 
   4.65 3.23  2.34 8.9; 
   2.32 7.65  4.98 2.78]

我需要选择值,使得选择的两个值不相同。假设我想使用Matlab以1的增量选择5个值。

for ii=1:5
  % pick value one by one such that no two values chosen are same
end

循环应该像这样运行:

  ii=1, d'=4.354
  ii=2, d'=4.354 2.32

不应该是:

   ii=2, d'=4.354 4.354 

2 个答案:

答案 0 :(得分:2)

如果您想为d选择唯一值,只需使用unique删除重复项,然后选择:

 ud = unique( d(:) ); % note the (:) - we want element-wise unique and not row-unique

 ud(1:5) % picks first fiver unique elements

答案 1 :(得分:2)

只需使用randperm创建5个随机非重复数字的linear index

d(randperm(numel(d),5))