Rewrite for loop with find function

The question:
  1. See the following code. Rewrite the code in one line using the find function.
x=[-1 3 7 2 4 0];
v=[];
for i=1:length(x)
ifx(i)<=2
v=[v, x(i)];
end
end
I have tried x=[-1 3 7 2 4 0]; find(x<=2)
which returns 1 4 6. What I need it to display is -1 2 0
How would I do this? thanks!

Answers (1)

The function find returns the indeces according to the condition. So, in order to diplay the values, you might use the following:
x(find(x<=2))
Here is more information.

4 Comments

I tried that and it doesnt work unfortunately and the link to more information is broken
Thanks for leading me in the right direction. I used x=[-1 3 7 2 4 0]; x(find(x<=2)) and it worked
I fixed the link. It is just the find document. Glad it worked.
If it was helpful, please accept the answer.
"find" is redundant here. You can just use
x(x<=2);

Sign in to comment.

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Asked:

on 18 Nov 2019

Commented:

on 19 Nov 2019

Community Treasure Hunt

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

Start Hunting!