ranges of dimensions when using nan

3 visualizaciones (últimos 30 días)
Asliddin Komilov
Asliddin Komilov el 24 de Mayo de 2021
Comentada: Asliddin Komilov el 25 de Mayo de 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 comentarios
KSSV
KSSV el 24 de Mayo de 2021
Have a look on the function isnan.
Asliddin Komilov
Asliddin Komilov el 24 de Mayo de 2021
I have attached the data, and isnan did not handle the 6D (or I don't know how to do it)

Iniciar sesión para comentar.

Respuesta aceptada

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

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Matrices and Arrays en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by