Please help to vectorize this for loop

Dear all,
I would like some help in vectorizing this for loop:
k=1; for i=6:5:121;
R(:,k)= rawdata{1,i};
MF(:,k)= rawdata{1,i+1};
QF(:,k)=rawdata{1,i+2};
SF(:,k)=rawdata{1,i+3};
k = 1+k;
end
The rawdata is in the form of cell arrays within cell arrays, I have attached a screenshot of how it looks. The end results for R, MF, QF and SF is a table with what is extracted from the rawdata. I want to find a way to remove this for loop and I read that vectorization is a way of optimize for loops.
Thank You,
M

 采纳的回答

d = rawdata(6:end);
d = reshape(d,5,[])';
out = d(:,1:4);
% R = out(:,1); MF = out(:,2); and etc.
or just
out = rawdata(bsxfun(@plus,6:9,(0:5:numel(rawdata)-6)');
% R = out(:,1); MF = out(:,2); and etc.

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Loops and Conditional Statements 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by