加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

MATLAB中多个一维数组的合并

(2010-07-15 14:31:11)
标签:

杂谈

分类: matlab编程
1、一维数组直接合并
       题目:
           数组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       -2       -3       -4

       解法二:
           A = [1,2,3,4];
           B = [-1,-2,-3,-4];
           C=[A' B']';
           C=reshape(C, 1, length(A)+length(B));
          
           C =
                  -1       -2       -3       -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       -2       -3       -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 -----------------
          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]);
          --------------------------------------

ss=cell(1,10);for i=1:10
ss{i}=[a(i),b(i)];
end

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有