例如:如果我有矩阵A和矩阵B:
A =
7 4 1
4 5 6
3 6 9
B =零(4,4)
B =
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
我希望我希望矩阵B中的元素(3,2)具有大小(4,4)来尝试矩阵A中第一列的值,其大小为(3,3),并且每次都产生新矩阵。所以,输出将是:
B =
0 0 0 0
0 0 7 0
0 0 0 0
0 0 0 0
B =
0 0 0 0
0 0 4 0
0 0 0 0
0 0 0 0
B =
0 0 0 0
0 0 3 0
0 0 0 0
0 0 0 0
我该怎么做?
答案 0 :(得分:1)
一种简单的方法是将3D
矩阵转换为1D
向量。您现在可以编写一个循环遍历此向量的函数,并每次构建它的不同排列。从每个排列中,您可以重建3D
矩阵。
对于大小为N
的向量,有多少可能的排列?
答案是:N!
function m = computerDifferentPerm(A)
vec = A(:).';
m = perms(vec);
end
现在m
是N! x N
矩阵
每条线是对应于原始矩阵的一个排列的向量。您现在必须将每个重建为3D
矩阵。