如何生成具有特定范围的行和列中不重复的随机矩阵
示例 (3x3):范围 1 到 3
2 1 3
3 2 1
1 3 2
示例 (4x4):范围 1 到 4
4 1 3 2
1 3 2 4
3 2 4 1
2 4 1 3
解决这个问题的一种方法是生成一个循环矩阵并将其打乱。
mat_size = 4
A = gallery('circul', 1:mat_size); % circular matrix
B = A( randperm(length(A)) , randperm(length(A)) ); % shuffle rows and columns with randperm
It gives
A =
1 2 3 4
4 1 2 3
3 4 1 2
2 3 4 1
B =
3 4 1 2
2 3 4 1
4 1 2 3
1 2 3 4
这个方法应该很快。 11 大小的问题的计算时间为 0.047021 秒。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)