【问题标题】:MATLAB swap columns of two different matricesMATLAB 交换两个不同矩阵的列
【发布时间】:2010-10-19 22:42:11
【问题描述】:

我正在使用 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 列?

【问题讨论】:

    标签: matlab


    【解决方案1】:

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

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

    【讨论】:

    • +1 不错,虽然对于这样一个简单的任务来说似乎有点过头了
    • @Amro:也许吧,但一般来说,DEAL 是一个有用的功能,所以我想我不妨将它列为另一种可能的解决方案。 ;)
    【解决方案2】:
    tmp = A(:,1);
    A(:,1) = B(:,3);
    B(:,3) = tmp;
    

    【讨论】:

      【解决方案3】:

      使用

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

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

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

      【讨论】:

      • 感谢您的回复,但这仅将矩阵 B 中的内容放入 A 中。有什么东西可以将列从 B 带到 A,从 A 到 B?
      猜你喜欢
      • 2019-07-03
      • 1970-01-01
      • 2018-04-28
      • 2018-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多