ranges of dimensions when using nan

2 views (last 30 days)
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 Comments
KSSV
KSSV on 24 May 2021
Have a look on the function isnan.
Asliddin Komilov
Asliddin Komilov on 24 May 2021
I have attached the data, and isnan did not handle the 6D (or I don't know how to do it)

Sign in to comment.

Accepted Answer

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

Sign in to comment.

More Answers (0)

Categories

Find more on Operating on Diagonal Matrices in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!