How to find out if a logical array is all zeros?

178 vues (au cours des 30 derniers jours)
MKM
MKM le 3 Fév 2022
Commenté : MKM le 4 Fév 2022
I have a logical array that is 100x1 logical. sometimes it contains a mix of numbers and sometimes it contains all 0s.
How would i go about making an if statement that checks to see if all 100x1 is 0s and if all 0s = do something
I thought i was correct in using any command but im not sure that works correctly for me..
Thanks!

Réponse acceptée

John D'Errico
John D'Errico le 3 Fév 2022
Modifié(e) : John D'Errico le 3 Fév 2022
any does work, with a slight tweak. But you could also use all, or sum, or nnz, or even find. There are certainly many ways.
if ~any(X)
...
end
if all(~X)
...
end
if sum(x) == 0
...
end
if numel(find(x)) == 0
...
end
if nnz(x) == 0
...
end
Any of those tools would suffice.

Plus de réponses (4)

Turlough Hughes
Turlough Hughes le 3 Fév 2022
One way:
~any(x)

William Rose
William Rose le 3 Fév 2022
If A is a vector,
sum(abs(A))
will be zero, or not, of all the elements are zero, or not.
If A is a 2D array, do
sum(sum(abs(A)))

David Hill
David Hill le 3 Fév 2022
if all(~yourArray)

Steven Lord
Steven Lord le 3 Fév 2022
For a vector, all with one input will work.
x = ones(10, 1);
all(x > 0) % true
ans = logical
1
For a non-vector array you probably want to specify a dimension. In recent releases, you can specify a vector of dimensions on which to operate or you can specify 'all' as the dimension to operate on all the dimensions no matter how many there are.
x = ones(10, 10);
all(x > 0) % Only operate on dimension 1
ans = 1×10 logical array
1 1 1 1 1 1 1 1 1 1
all(x > 0, 'all') % Operate on dimensions 1 and 2
ans = logical
1
x = ones(10, 10, 10);
all(x > 0, [1 3]) % Operate on dimensions 1 and 3
ans = 1×10 logical array
1 1 1 1 1 1 1 1 1 1
all(x > 0, 'all') % Operate on dimensions 1, 2, and 3
ans = logical
1
  1 commentaire
MKM
MKM le 4 Fév 2022
This is great! Thanks for taking the time to help me with this.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Discrete Data Plots dans Help Center et File Exchange

Produits


Version

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by