how to create a matrix in matlab

I have A=[1 3; 2 4]; and B=[5 6; 7 8];
I would like to create this two matrix line by line in C :
C=[1 3;5 6; 2 4; 7 8];

5 Comments

By writing, C = [A(1,:);B(1,:);A(2,:);A(2,:)]
great , but it is possible to use loop
I wrote on my phone, so I hope there is error in that. There are simply two case, odd and even number of total row. Maybe there exists a simple solution, but it works :)
[sizeRowA sizeColA] = size(A); [sizeRowB sizeColB] = size(B);
C = zeros(sizeRowA + sizeRowB, sizeColA);
if (rem((sizeRowA + sizeRowB),2) == 0) for i = 1:((sizeRowA+sizeRowB)/2) C(2*i-1,:) = A(i,:); C(2*i,:) = B(i,:); end else for i = 1:((sizeRowA+sizeRowB-1)/2) C(2*i-1,:) = A(i,:); C(2*i,:) = B(i,:); end C(sizeRowA+sizeRowB,:) = A(sizeRowA,:) end
thank you very much , yes exactly!!!!
@marwa hajji did you see my Answer below (scroll down to the official Answers section, not up here in the comments section which is supposed to be used to ask the original poster for clarification)?

Sign in to comment.

Answers (2)

A couple different ways:
>> A = [1 3; 2 4]
A =
1 3
2 4
>> B = [5 6; 7 8]
B =
5 6
7 8
>> C = A
C =
1 3
2 4
>> C = [C; B]
C =
1 3
2 4
5 6
7 8
>> C = [A; B]
C =
1 3
2 4
5 6
7 8

1 Comment

This
C =
1 3
2 4
5 6
7 8
is not what he wanted. He said he wants
C=[1 3;5 6; 2 4; 7 8]
C = 4×2
1 3 5 6 2 4 7 8

Sign in to comment.

Try this:
A=[1 3; 2 4]
A = 2×2
1 3 2 4
B=[5 6; 7 8]
B = 2×2
5 6 7 8
% What is desired:
C = [1 3;5 6; 2 4; 7 8]
C = 4×2
1 3 5 6 2 4 7 8
% My code
C2 = [A(1,:); B(1, :); A(2,:); B(2,:)]
C2 = 4×2
1 3 5 6 2 4 7 8
If you need it generalized to interleave a different number of rows than 2, or if A and B might have different numbers of rows, then it would be more complicated.

Categories

Asked:

on 1 Feb 2022

Commented:

on 2 Feb 2022

Community Treasure Hunt

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

Start Hunting!