交换给定符号矩阵的元素

swapping elements of a given symbolic matrices

所以,这个问题很容易理解。给定任何维度的任何符号矩阵,我想交换元素以获得一个大小相同、元素相同但分布不同的矩阵。

例如

syms a b c

A=[a b c;0 0 c]

交换A我们可以得到:

A=[b a c;0 c 0];

使用 randperm(numel(A)) 可以生成数字 1:numel(A) 的随机排列,它们是矩阵中的索引。

A(:)=A(randperm(numel(A)));

左边的A(:)需要保持形状,否则你最终会得到一个元素的向量。如果您希望保持矩阵 A 不变:

B=A; %just to get a matrix of same size and datatype
B(:)=A(randperm(numel(A)));