MATLAB交换两个不同矩阵的列

ajj*_*ajj 3 matlab

我使用matlab并且遇到了一些困难.我试图将一个矩阵(A)的列与另一个矩阵(B)的列交换.例如:

A =

 4     6     5  
 7     8     4     
 6     5     9    
 1     0     0     
 0     1     0     
 0     0     1     
Run Code Online (Sandbox Code Playgroud)

B =

 1     0     0     0     0     0
 0     1     0     0     0     0
 0     0     1     0     0     0
 0     0     0    -1     0     0
 0     0     0     0    -1     0
 0     0     0     0     0    -1
Run Code Online (Sandbox Code Playgroud)

有没有办法告诉Matlab切换,例如,A中的第1列和B中的第3列?

Amr*_*mro 5

tmp = A(:,1);
A(:,1) = B(:,3);
B(:,3) = tmp;
Run Code Online (Sandbox Code Playgroud)


gno*_*ice 5

实际上,您可以使用DEAL函数在一行中执行此列交换,而不需要虚拟变量:

[A(:,1),B(:,3)] = deal(B(:,3),A(:,1));
Run Code Online (Sandbox Code Playgroud)