How can I mix two arrays?
14 次查看(过去 30 天)
显示 更早的评论
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]?
0 个评论
采纳的回答
Youssef Khmou
2015-1-15
编辑:Youssef Khmou
2015-1-15
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)];
更多回答(1 个)
Stephen23
2015-1-15
编辑:Stephen23
2015-1-16
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.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!