Azzera filtri
Azzera filtri

ranges of dimensions when using nan

1 visualizzazione (ultimi 30 giorni)
dear community,
I have a 6D result Arr(crb, cefb, crr, crp, ctb, ccb) where Arr(Arr>1)=nan.
How can I find the values of crb, cefb, crr, crp, ctb and ccb, where Arr is not nan?
thanks
  3 Commenti
KSSV
KSSV il 24 Mag 2021
Have a look on the function isnan.
Asliddin Komilov
Asliddin Komilov il 24 Mag 2021
I have attached the data, and isnan did not handle the 6D (or I don't know how to do it)

Accedi per commentare.

Risposta accettata

Jan
Jan il 24 Mag 2021
isnan is the function, which replies a logical array with the same dimension as the input and TRUE values, where the input has NaN elements. It does handle 6 dimensional arrays.
siz = [2,3,4,5,6,7];
Data = ones(siz); % Some test data
Data(rand(siz) > 0.5) = nan;
index = isnan(Data)
Now use either the logical array directly, or call find() to obtain the index vectors. Maybe ind2sub helps you to get the indices for the different dimensions.
  3 Commenti
Jan
Jan il 25 Mag 2021
isnan() replies an array of the same size as the input. So if the input has 6 dimensions, the output has 6 dimensions, too.
Please post a piece of code, which reproduces your problem.
ind2sub converts the linear index to the indices related to an array. See: doc ind2sub.
Asliddin Komilov
Asliddin Komilov il 25 Mag 2021
sorry, it was another line that made the error.
actually I needed to use isfinite and it worked exactly as you said.
thanks

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Operating on Diagonal Matrices in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by