# How can I mix two arrays?

17 views (last 30 days)
Alex Strongholm on 15 Jan 2015
Edited: Stephen23 on 18 Jan 2015
Given A=[1 3 5 7 9] and B=[2 4 6 8], how can I create C=[1 2 3 4 5 6 7 8 9]?

Youssef Khmou on 15 Jan 2015
Edited: Youssef Khmou on 15 Jan 2015
This question is general due to the variation of array dimensions, however for a particular case you described, vectors A and B can be mixed by single loop, so the following scheme is valid only when dim(A)=dim(B)+1 as in the example :
A=[1 3 5 7 9];
B=[2 4 6 8];
n=min(length(A),length(B));
C=[];
for t=1:n
C=[C A(t) B(t)];
end
C=[C A(end)];
Stephen23 on 15 Jan 2015
Edited: Stephen23 on 15 Jan 2015

Stephen23 on 15 Jan 2015
Edited: Stephen23 on 16 Jan 2015
This can be done simply using indexing, without any loops:
>> A = [1,3,5,7,9];
>> B = [2,4,6,8];
>> C(1:2:2*numel(A)) = A;
>> C(2:2:end) = B
C =
1 2 3 4 5 6 7 8 9
This solution also assumes that numel(A)==numel(B)+1.
Most importantly, for larger arrays this code will be much faster than the accepted solution, so it is the most universal solution.