Filter löschen
Filter löschen

ranges of dimensions when using nan

1 Ansicht (letzte 30 Tage)
Asliddin Komilov
Asliddin Komilov am 24 Mai 2021
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 Kommentare
KSSV
KSSV am 24 Mai 2021
Have a look on the function isnan.
Asliddin Komilov
Asliddin Komilov am 24 Mai 2021
I have attached the data, and isnan did not handle the 6D (or I don't know how to do it)

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Jan
Jan am 24 Mai 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 Kommentare
Jan
Jan am 25 Mai 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 am 25 Mai 2021
sorry, it was another line that made the error.
actually I needed to use isfinite and it worked exactly as you said.
thanks

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Operating on Diagonal Matrices finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by