フィルターのクリア

Removing pages with all nan values from a multidimensional array

5 ビュー (過去 30 日間)
Mathan
Mathan 2022 年 5 月 10 日
コメント済み: Mathan 2022 年 5 月 10 日
Is there any way to remove pages containing all nan values from a multidimensional array. Say I have this multidimensional array:
XYZ(:,:,1) =
NaN 2.2 3.2
NaN 5.7 NaN
1.5 2.5 2.8
XYZ(:,:,2) =
NaN NaN NaN
11.2 92 33.73
NaN NaN NaN
XYZ(:,:,3) =
NaN NaN NaN
NaN NaN NaN
NaN NaN NaN
I would like to have XYZ(:,:,3) to be removed since that page contains all nan values and retain the other two pags. I tried (from https://www.mathworks.com/matlabcentral/answers/152251-reduce-3d-array-by-removing-nan-elements):
remove_pages = all(all(isnan(XYZ),3),2);
XYZ(remove_pages,:,:) = []
but it does not remove the 'all-nan' pages. Any guidance would be great.
Thanks

採用された回答

Matt J
Matt J 2022 年 5 月 10 日
編集済み: Matt J 2022 年 5 月 10 日
discard=all( isnan(XYZ) ,[1,2]);
XYZ(:,:,discard)=[];
  1 件のコメント
Mathan
Mathan 2022 年 5 月 10 日
Perfect - thank you! Wondering whether there is any documentation somehwere where I can check more details on multidimensional array (like examples or information where I can check how to remove just rows containing all nan. pages containing all nan, etc).

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeOperators and Elementary Operations についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by