Finding remaining numbers in logical indexing?

3 ビュー (過去 30 日間)
Holly Robinson
Holly Robinson 2019 年 5 月 14 日
コメント済み: Holly Robinson 2019 年 5 月 14 日
How would you find how many numbers in an array do not meet any of the previous conditions without using else if statements?
I want to return all the numbers that do not meet the previous conditions listed, but I can't figure out how to do that without using if else statements.
find=length<1;
disp('stubby')
sum(find(:) == 1)
find=(length < 3) & (max_width_head > mean_width_neck*2);
disp('mushroom')
sum(find(:) == 1)
find=max_width_head>=mean_width_neck;
disp('long thin')
sum(find(:) == 1)
  2 件のコメント
James Tursa
James Tursa 2019 年 5 月 14 日
You are really going to confuse your readers by using the names "find" and "length" as variable names ... they shadow important MATLAB functions. I would advise using different names.
madhan ravi
madhan ravi 2019 年 5 月 14 日
編集済み: madhan ravi 2019 年 5 月 14 日
First and foremost your variable naming is totally a bad idea and second of all what is the input and what output are you expecting?

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

採用された回答

James Tursa
James Tursa 2019 年 5 月 14 日
E.g.,
find1 = length<1;
:
find2 = (length < 3) & (max_width_head > mean_width_neck*2);
:
find3 = max_width_head>=mean_width_neck;
sum(~(find1 | find2 | find3)) % the number that don't match any of the previous conditions
  1 件のコメント
Holly Robinson
Holly Robinson 2019 年 5 月 14 日
That worked perfectly thank you so much!!

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeGraphics Object Programming についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by