Removing all-NaN Rows/Columns from Cell Matrix?
조회 수: 3 (최근 30일)
이전 댓글 표시
Let's say I have the following cell matrix that contains NaN's, numbers, and strings...
A = {...
0 2 'All' NaN NaN 2
NaN NaN NaN NaN NaN NaN
NaN NaN 'Yes' NaN NaN 1};
Is there an easy way to identify the rows and columns that contain all NaN's? In this example, I would like to remove row 2, and then columns 4 and 5. The result would be...
B = {...
0 2 'All' 2
NaN NaN 'Yes' 1};
I have brute-forced it by checking every value, but I'm sure there is a more methodical approach using cellfun perhaps. My method took 30 lines but I'm guessing there it can be done in just a few lines.
Thanks!
댓글 수: 0
채택된 답변
Azzi Abdelmalek
2014년 8월 26일
A = { 0 2 'All' NaN NaN 2
NaN NaN NaN NaN NaN NaN
NaN NaN 'Yes' NaN NaN 1}
idx=cellfun(@(x) all(isnan(x)),A)
ii=all(idx,2)
jj=all(idx)
A(ii,:)=[]
A(:,jj)=[]
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!