连续堆叠2个矩阵的行

时间:2016-12-09 10:07:53

标签: matlab for-loop

我有两个矩阵,每个矩阵有十行。我试图连续地将行堆叠在彼此之上。例如,我有矩阵A和B,我已经做了一个for循环,使它重复堆叠行的过程。现在的问题是,当我运行脚本时,它只对第一行执行并且不继续。代码写在下面

A = [1 2 3 4 5 6 7 8 9 10];
B= [11 12 13 14 15 16 171 18 19 20];

for i2= 1:10
      l= A(i2,1);
      p= B(i2,1);
       for i4= 1:10
            i4 = [l;p] ;  
       end
    end
% so the answer will be 
% i4 = [1 11 2 12 3 13 4 14 5 15 6 16 7 17 8 18 9 19 10 20]

我需要一些帮助

4 个答案:

答案 0 :(得分:0)

我还没有matlab来测试这个,但是:

new = []
for i= 1:10
  l= A(i,:);
  p= B(i,:);
  for j= 1:10
        new(end+1) =[l(j),p(j)] ;  
   end
end

肯定有更好的方法,但这应该有用。

答案 1 :(得分:0)

你不需要任何循环! 试试这个:

i4 = [A,B];

答案 2 :(得分:0)

自: https://stackoverflow.com/a/17766565/7252268

A = [1 2 3 4 5 6 7 8 9 10];
B= [11 12 13 14 15 16 171 18 19 20];

i4 = zeros(size(A,1), size(A,2)+size(B,2));
i4(:,1:2:end) = A;
i4(:,2:2:end) = B;

答案 3 :(得分:0)

除了Ekin Inceleme的解决方案,你可以使用

i4 = reshape([A.' B.'].', 1, 2*size(A,2));

规定AB的大小相同。但是,这里的这个并不容易阅读。