Removing pages with all nan values from a multidimensional array

조회 수: 3 (최근 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 CenterFile Exchange에서 Operators and Elementary Operations에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by