MATLAB交换两个不同矩阵的列

时间:2010-10-19 22:42:12

标签: matlab

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

A =

 4     6     5  
 7     8     4     
 6     5     9    
 1     0     0     
 0     1     0     
 0     0     1     

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

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

3 个答案:

答案 0 :(得分:5)

tmp = A(:,1);
A(:,1) = B(:,3);
B(:,3) = tmp;

答案 1 :(得分:4)

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

[A(:,1),B(:,3)] = deal(B(:,3),A(:,1));

答案 2 :(得分:1)

使用

A(:,1) = B(:,3);

或者实际交换它们,您可以使用:

dummy = A(:,1);
A(:,1) = B(:,3);
B(:,3) = dummy;