to speed up 'for' loop

Asked by Michael Adelman on 1 Aug 2012
Latest activity Commented on by Walter Roberson on 12 Aug 2012

hello,

i have a loop with the following format:

for n = 1:length(x)
        if ....    
            .....
        elseif ....
            .......
        end    
    end

I suspect that it takes too long and my program is stuck. the length of 'x' currently 1200 cells and it might vary. How can I speed this up?

thanks,

6 Comments

Rick Rosson on 2 Aug 2012

Please post the actual and complete code...

Michael Adelman on 3 Aug 2012

Hello Rick,

I'm sorry but I really can't post the actual code. The loop as I described is very simple and do check for the value of the cell and then do a substitution or addition to the current value.

Walter Roberson on 12 Aug 2012

Please review the guide to tag and retag this question; see http://www.mathworks.co.uk/matlabcentral/answers/43073-a-guide-to-tags

Michael Adelman

Products

No products are associated with this question.

2 Answers

Answer by Walter Roberson on 1 Aug 2012
Accepted answer

Processing 1200 items in an array would normally take too little time to measure meaningfully, unless the processing for each one takes a long time (in which case that is the problem rather than the for loop.)

I suggest you use the profiler to measure the performance. You could temporarily change the upper bound to something smaller than length(x)

You may wish to consider using waitbar()

0 Comments

Walter Roberson
Answer by Michael Adelman on 3 Aug 2012

Hello Walter,

Thank you , using a profiler really gave me a lot of information that I wan't aware of it before.

I'll continue to analyze the code and then ask more specific questions.

waitbar() is not a good use for me, since the code must work in real time telemetry and no wait/delay are allowed (as little as possible).

0 Comments

Michael Adelman

Contact us