ranges of dimensions when using nan

1 次查看(过去 30 天)
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 个评论
KSSV
KSSV 2021-5-24
Have a look on the function isnan.
Asliddin Komilov
Asliddin Komilov 2021-5-24
I have attached the data, and isnan did not handle the 6D (or I don't know how to do it)

请先登录,再进行评论。

采纳的回答

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

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Operating on Diagonal Matrices 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by