ranges of dimensions when using nan

1 回表示 (過去 30 日間)
Asliddin Komilov
Asliddin Komilov 2021 年 5 月 24 日
コメント済み: Asliddin Komilov 2021 年 5 月 25 日
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 Center および File ExchangeOperating on Diagonal Matrices についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by