生成未对齐的随机数三元组

时间:2017-06-09 10:20:10

标签: matlab math

给出大小为N的方阵。

e.g。对于3x3案例A = [1 2 3; 4 5 6; 7 8 9]

我想生成3个随机三元组(矩阵内的数字),使得这些点不对齐。因此,三元组不是矩阵的行和列。

任何人都知道一个敏捷的敏捷方式来编写代码吗?谢谢大家

1 个答案:

答案 0 :(得分:0)

这是你在找什么?

A = [1 2 3; 4 5 6; 7 8 9];
r=[];
while size(r,1)<3
    idx = randi(numel(A),[1,3]); %random indices
    [i,j]=ind2sub(size(A),idx);  %subs
    if ~(all(i(1)==i)||all(j(1)==j)) %not all from same row or column
        r(end+1,:)=A(idx); %add to result
    end
end