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!

Antworten (1)

Erivelton Gualter
Erivelton Gualter am 18 Nov. 2019

1 Stimme

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 Kommentare

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

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Hilfe-Center und File Exchange

Gefragt:

am 18 Nov. 2019

Kommentiert:

am 19 Nov. 2019

Community Treasure Hunt

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

Start Hunting!

Translated by