Find out if X out of Y elements of an array are true

7 ビュー (過去 30 日間)
A VP
A VP 2019 年 5 月 31 日
コメント済み: A VP 2019 年 6 月 3 日
I have an array of 5 elements. The array is updated at any index (1,2,3,4,5) in each simulation time to a value TRUE or FALSE. In the next function, I should check if 4 out of 5 elements including the last updated element of the array are TRUE. Is there a way to check this?

採用された回答

Jos (10584)
Jos (10584) 2019 年 5 月 31 日
Let TF be your logical array and X the index of the last updated element then
ConditionIsMet = TF(x) && sum(TF) == 4
will be true if your condition is met.
  1 件のコメント
A VP
A VP 2019 年 6 月 1 日
This works. Thank you.

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

その他の回答 (1 件)

Arvind Sathyanarayanan
Arvind Sathyanarayanan 2019 年 5 月 31 日
編集済み: Arvind Sathyanarayanan 2019 年 5 月 31 日
You can do something like this :
X=sum(Array(:) == 1);
if X>=4
disp('4 or more elements are true')
end
If they are 1s and 0s, you can just count the non zero elements using the nnz() function.
  3 件のコメント
Jos (10584)
Jos (10584) 2019 年 6 月 1 日
Logically, when one element changes at a time, (let's say, the k-th), the condition that 4 out of 5 are ture, is met can only happen when that element has become true. So, logically, that check is not really necessary ...
A VP
A VP 2019 年 6 月 3 日
Ok. This is a new learning to me. Thank you.

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

カテゴリ

Help Center および File ExchangeMatrix Indexing についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by