Effacer les filtres
Effacer les filtres

How to count the maximum and minimum range of non-zeros elements?

1 vue (au cours des 30 derniers jours)
Jahanzeb Saqib
Jahanzeb Saqib le 7 Déc 2020
Commenté : Jahanzeb Saqib le 8 Déc 2020
let's suppose we have A of length 50 rows
how we can calculate the maximum range of non-zeros element and as well as minimum
A = [0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 ]
In this case Max and Min should be,
Max = 5
Min = 2
Is there a straightforward solution to do this? without using complex looping because in my case data is too large approximately length of A is 220079705, your kind consideration will be highly regarded by all means,
Many Thanks
  2 commentaires
hangar011
hangar011 le 7 Déc 2020
There are built-in functions for this...
length(find(A)) or length(find(A==0))
Image Analyst
Image Analyst le 7 Déc 2020
Sorry, but length(find()) won't work. See my answer below.

Connectez-vous pour commenter.

Réponse acceptée

Image Analyst
Image Analyst le 7 Déc 2020
Use regionprops(), in the Image Processing Toolbox:
A = [0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 ]
props = regionprops(logical(A), 'Area');
allLengths = [props.Area];
minLength = min(allLengths)
maxLength = max(allLengths)
  1 commentaire
Jahanzeb Saqib
Jahanzeb Saqib le 8 Déc 2020
Thank you so much!
The code is working as expected and to the point!

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by