Speeding up a loop
Show older comments
I have made a simple loop that works fine when dealing with small datasets, but takes ages to run when L is 10^6 in size - which unfortunately is the size I need to work with. I'm sure you can tell by the code itself I'm a matlab newbie, so any ideas on how this can be sped up would be very much appreciated. I've read about vectorisation but cannot work out how to vectorise this code.
C=cumsum(S);
L=length(C);
X=zeros(1,L)';
for i=1:L;
if C(i)>min(C(i:L));
X(i);
else
X(i)=1;
end
end
4 Comments
Rick Rosson
on 17 Jan 2013
Edited: Rick Rosson
on 17 Jan 2013
Is S a row vector or a column vector?
Rick Rosson
on 17 Jan 2013
Edited: Rick Rosson
on 17 Jan 2013
What is the goal of this algorithm? What do the variables S and X represent?
Jan
on 17 Jan 2013
Is the wanted property of C directly related to the sign of the corresponding element of S?
Accepted Answer
More Answers (1)
Swisslog
on 17 Jan 2013
0 votes
Categories
Find more on Loops and Conditional Statements in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!