0

假设给定一个矩阵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 
4

2 回答 2

2

只需使用randperm创建5 个随机非重复数字的线性索引:

d(randperm(numel(d),5))
于 2013-05-10T06:35:45.203 回答
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
于 2013-05-10T05:45:33.267 回答