get rid of NaNs

조회 수: 1 (최근 30일)
Andrea
Andrea 2012년 6월 7일
I have two matrix A and B I want to remove all row and columns with all NaNa in matrix A and accordingly delete the same row and column in B:
A( all( isnan( A ), 2 ), : ) = []; % removes all rows with all nans
A( :, all( isnan( A ), 1 ) ) = []; % and columns
this remove all row and column with all NaNs, But I want to remove the exact row and column from B, too, here is an example:
>> A=[1 2 3 NaN NaN 5 6 7];
>> B=[1 2 3 4 5 6 7 8]; I want the B as below:
B=[1 2 3 6 7 8];
Thanks in advances!

채택된 답변

per isakson
per isakson 2012년 6월 7일
rows_to_be_removed = all( isnan( A ), 2 ),
A(rows_to_be_removed,:)=[];
B(rows_to_be_removed,:)=[];
etc.
Given that A and B have the same size.

추가 답변 (2개)

Thomas
Thomas 2012년 6월 7일
A=[1 2 3 NaN NaN 5 6 7];
B=[1 2 3 4 5 6 7 8];
check=find(isnan(A));
B(check)=[]

Andrea
Andrea 2012년 6월 7일
actually it was an simple example. But I want to remove rows with all NaNa and then remove the same rows from another matrix accordingly.

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by