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

3 visualizaciones (últimos 30 días)
A VP
A VP el 31 de Mayo de 2019
Comentada: A VP el 3 de Jun. de 2019
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?

Respuesta aceptada

Jos (10584)
Jos (10584) el 31 de Mayo de 2019
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.

Más respuestas (1)

Arvind Sathyanarayanan
Arvind Sathyanarayanan el 31 de Mayo de 2019
Editada: Arvind Sathyanarayanan el 31 de Mayo de 2019
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 comentarios
Jos (10584)
Jos (10584) el 1 de Jun. de 2019
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 el 3 de Jun. de 2019
Ok. This is a new learning to me. Thank you.

Iniciar sesión para comentar.

Categorías

Más información sobre Matrix Indexing en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by