我需要在 MATLAB 中生成一些 5x6 矩阵。它们需要由 1-6 范围内随机生成的整数组成,但是,一个整数在特定行或列中不能出现多次。
这是我目前用来生成随机 5x6 矩阵的脚本:
mat=zeros(5,6);
rows=5;
columns=6;
for i=1:rows
for j=1:columns
mat(i,j)=round(rand*(high-low)+low);
end
end
disp(mat)
但我不知道如何将关于重复的规则插入其中。
我确信这是一个相对简单的问题,但我是 MATLAB 的新手,无法生成满足这些条件的问题。如果有人能提供任何帮助,我将不胜感激。
最佳答案
试试这个:
m = zeros(5,6);
for row = 1:5
flag = 1;
while(flag)
flag = 0;
R = randperm(6);
for testRow = 1:row
flag = flag + sum(m(testRow,:) == R);
end;
if (~flag)
m(row,:) = R;
end;
end;
end;
m
关于matlab - 在 MATLAB 中生成随机 'su doku' 类型矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9888531/