【问题标题】:Column combination matrix列组合矩阵
【发布时间】:2015-04-07 19:17:02
【问题描述】:

我想合并矩阵的列,例如,

 A=[1,2,3;4,5,6]';B=[1,3,5;2,9,0]';

我想要

            C1=[1,2,3;1,3,5]' 
            C2=[1,2,3;2,9,0]' 
            C3=[4,5,6;1,3,5]' 
            C4=[4,5,6;2,9,0]'

如何在 matlab 中做到这一点?有这样的功能吗?

谢谢!

【问题讨论】:

    标签: matlab matrix combinations


    【解决方案1】:

    这应该可以解决问题:

    A=[1,2,3;4,5,6]';
    B=[1,3,5;2,9,0]';
    Cs = [];
    index = 0;
    
    for i = 1:length(A(1,:))
        for j = 1:length(B(1,:))
            index += 1;
            Cs(:,:,index) = [A(:,i), B(:,j)];
        end
    end
    
    Cs
    

    【讨论】:

      【解决方案2】:

      这是你想要的吗?

      [ii, jj] = ndgrid(1:size(A,2));
      C = permute(cat(3, A(:,jj), B(:,ii)), [1 3 2]);
      

      结果是一个 3D 数组,其中 (C(:,:,1) 是您的 C1,等等:

      C(:,:,1) =
           1     1
           2     3
           3     5
      C(:,:,2) =
           1     2
           2     9
           3     0
      C(:,:,3) =
           4     1
           5     3
           6     5
      C(:,:,4) =
           4     2
           5     9
           6     0
      

      【讨论】:

        猜你喜欢
        • 2017-05-03
        • 2022-10-24
        • 1970-01-01
        • 2013-04-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-14
        • 1970-01-01
        相关资源
        最近更新 更多