MATLAB: Is it possible to remove this for loop to speed up the processing

aaa

I have following loop in my codes:
for n=1:Na
sig1(n,m) = sig(n,m+RCM(n));
end
where Na is a large number,28001;
the row number of sig1 and sig are the same;
the column of sig is larger than that of sig1;
RCM is a Nax1 vector.
Thanks in advance.

Best Answer

N = 1 : Na;
sR = size(sig,1);
sig1((m-1)*sR + N) = sig((m+RCM-1)*sR + N);
No looping.
The above code uses linear indexing and uses knowledge of how to convert 2D indices into linear indices.