Matlab一维数组合并
      题目:
          数组work1[x1,x2——,xn],work2[y1,y2——,yn],现在要生成一个数组work3,
      work3中的数据为[x1,x2,x3--xn,y1,y2--yn];
      合并方法:
          直接将两个矩阵合并:
            A = [1,2,3,4];
            B = [-1,-2,-3,-4];
            C = zeros(1,size(B,2)+size(A,2));    %这句可以不要;
            C = [A, B];
    2、一维数组交叉合并:
      题目:
          数组work1[x1,x2——,xn],work2[y1,y2——,yn],现在要生成一个数组work3,
      work3中的数据为[x1,y1,x2,y2——,xn,yn];
     
      合并方法一:
          A = [1,2,3,4];
          B = [-1,-2,-3,-4];
          C = zeros(1,size(B,2)+size(A,2));
          C(1:2:end) = A;
          C(2:2:end) = B
         
          C =
                1    -1    2    -2    3    -3    4    -4
      解法二:
          A = [1,2,3,4];
          B = [-1,-2,-3,-4];
          C=[A' B']';
          C=reshape(C, 1, length(A)+length(B));
         
          C =
                1    -1    2    -2    3    -3    4    -4
      解法三:
          对于解法二改进:
          c=reshape([A;B],1,[]);
          这里要注意,只能在v7以上的版本才能使用此法;
      解法四:
          A = [1,2,3,4];
          B = [-1,-2,-3,-4];
          C=kron(A,[1 0])+kron(B,[0 1]);
         
          C =
                1    -1    2    -2    3    -3    4    -4
      很多技巧,试总结以上的方案:
          -------------------------------------
          A = [1,2,3,4];
          B = [-1,-2,-3,-4];
          ----------------- 1 -----------------
          C = zeros(1,size(B,2)+size(A,2));
          C(1:2:end) = A;
          C(2:2:end) = B;
          C=C(:);
          ------------------2 -----------------
matlab数组赋值          C=[A' B']';
          C=reshape(C, 1, length(A)+length(B));
          ------------------3-------------------
          c=reshape([A;B],1,[])
          ------------------4-------------------
          C=kron(A,[1 0])+kron(B,[0 1]);
          --------------------------------------

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。