Azzera filtri
Azzera filtri

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

1 visualizzazione (ultimi 30 giorni)
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 Commenti
hangar011
hangar011 il 7 Dic 2020
There are built-in functions for this...
length(find(A)) or length(find(A==0))
Image Analyst
Image Analyst il 7 Dic 2020
Sorry, but length(find()) won't work. See my answer below.

Accedi per commentare.

Risposta accettata

Image Analyst
Image Analyst il 7 Dic 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)

Più risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by