How can Write a function that combines two lists by alternatingly taking elements, e.g. [23,11,70], [1,2,3] → [23,1,11,2,70,3].
9 views (last 30 days)
Show older comments
anas birrow
on 10 Nov 2017
Commented: Star Strider
on 10 Nov 2017
function C= concat(L1,L2) T=[L1(1),L2(1)]; for i=2:length(L1) T(end+1)=L1(i) T(end+1)=L2(i);
end
C=T;
end
0 Comments
Accepted Answer
Star Strider
on 10 Nov 2017
Using the reshape function:
A = [23,11,70];
B = [1,2,3];
Out = reshape([A; B], 1, [])
Out =
23 1 11 2 70 3
2 Comments
Star Strider
on 10 Nov 2017
I am not certain what you are asking.
See if this does what you want:
function C = concat(L1,L2)
C = reshape([L1; L2], 1, [])
end
or using an anonymous function:
concat = @(L1,L2) reshape([L1; L2], 1, []);
More Answers (2)
KL
on 10 Nov 2017
No need to use a loop,
A = [1 2 3 4 5];
>> B = 10*A;
>> C = zeros(size([A B]));
>> C(1:2:end) = A;
>> C(2:2:end) = B;
>> C
C =
1 10 2 20 3 30 4 40 5 50
0 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!