solution for sequentially concatenating matrices

6 次查看(过去 30 天)
Hello,
I was wondering if there was a simple function to concatenate 2 matrices of same dimensions so that:
A=[ a c ]
[ b d ]
B=[ e g ]
[ f h ]
when concatenated it follows first column of A, then first column of B, second column of A, second column of B:
C=[a e c g]
[b f d h]
I can do it with a for loop, however I was wondering whether there was a more elegant way to do it?
Thanks
  2 个评论
Thomas
Thomas 2012-12-12
are you cat'ing string/numeric values? can you give an example with numbers?
Pablo
Pablo 2012-12-12
Yes, numbers are being concatenated, I think the solution below is the simplest one. However - I still need to place them within a cell matrix (that has column and row headers).
So for example --
D %cell matrix same size as A or B, where each cell will correspond to the merged values of C.
For example,
A=[ 1 3 ] [ 2 4 ]
B=[ 5 7 ] [ 6 8 ]
C=[1 5 3 7] [2 6 4 8]
And in the Cell matrix D: D {1,:}= column headers D{:,1}= row headers
and therefore: D {2,2} = [1 5] D{3,4} = [4 8]
Does this make sense?

请先登录,再进行评论。

采纳的回答

Walter Roberson
Walter Roberson 2012-12-12
C = reshape(vertcat(A,B), size(A,1), []);

更多回答(1 个)

Pablo
Pablo 2012-12-12
Actually, I think the solution would be:
C(:,1:2:columns*2)=A; C(:,2:2:columns*2)=B;

类别

Help CenterFile Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by