MATLAB: Combining two vectors in a pattern

matrixmatrix arraymatrix manipulationvectors

Is there a way to combine two vector let's say
a=[1,2,3,4,5,6,7,8,9]
b=[10,20,30,40];
the resulting vector would be
result=[1,2,3,10,20,4,5,6,30,40,7,8,9];
Is it possible to do this without loops
Thanks

Best Answer

n = length(a)+length(b);
mask = ismember(mod(1:n, 5), [0 4]);
result = zeros(1, n);
result(~mask) = a;
result(mask) = b;