Avoid using for loop

I am using this like which works fine:
Cellcount=Acc.perhexagon(Ac.time==data.timepoints(end).time);
I want to get information not only from the last timepoint. I want to have info from zeor timepoint to final time point with the step of 2. 0, 2, 4, 6, ...,end or something like this: 0:2:end
What would be the easiest way?

6 Comments

You should read about how to assign output from a comma-separated list.
@Daniel Martire This link uses for loop and I want to avoid it.
Rik
Rik on 8 Oct 2019
Your goal is not very clear to me, but often if you test for equality in a loop, ismember can provide a speedup.
You clearly didn't read the article. Look closer at the deal() function.
Tru using arrayfun.
Something like:
Cellcount = Acc.perhexagon( arrayfun(@(x) (x.time == Ac.time), data.timepoints(1:2:end)) );
Note, because you are indexing an array you will need to start from 1 not 0.
structfun might also work.
Cheers Alaster
Note that arrayfun is just a for loop internally.

Sign in to comment.

Categories

Tags

Community Treasure Hunt

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

Start Hunting!