Rewrite for loop with find function

6 ビュー (過去 30 日間)
Johnathan Pryor
Johnathan Pryor 2019 年 11 月 18 日
コメント済み: Vladimir Sovkov 2019 年 11 月 19 日
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!

回答 (1 件)

Erivelton Gualter
Erivelton Gualter 2019 年 11 月 18 日
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 件のコメント
Erivelton Gualter
Erivelton Gualter 2019 年 11 月 18 日
編集済み: Erivelton Gualter 2019 年 11 月 19 日
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 2019 年 11 月 19 日
"find" is redundant here. You can just use
x(x<=2);

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by