I guess you need something more complex than
myArray = [1 2 3 4 5]; myArray2 = myArray(myArray > 3);
The easiest (but slowest) way to do what you ask is something like
myArray2 = []; for x = myArray if CheckCondition(x) == 1 myArray2 = [myArray2 x]; %# grows myArray2, which is slow end; end;
You can optimize this with
myArray2 = NaN(size(myArray)); ctr = 0; for x = myArray if CheckCondition(x) == 1 ctr = ctr + 1; myArray2(ctr) = xx; end; end; myArray2 = myArray2(1:ctr); %
You can also watch ARRAYFUN .
source share