replace all the array with NaN if any of the value is NaN

3 views (last 30 days)
i am working with some data and the condition i want to set is that, if in the data there is NaN value in any column i want to replace that whole column with NaN values. following is a screen shot of my data structure. where i am working on the third dimension (144) of the data. Thanks in advance for help

Accepted Answer

KSSV
KSSV on 27 Sep 2017
Edited: KSSV on 27 Sep 2017
% Generate random matrix
N = 10 ;
A = rand(10) ;
% introduce nans
idx = randsample(1:N*N,20) ;
A(idx) = NaN ;
%%Repalce columns with NaN's if any NaN'present
B = A ;
for i = 1:N
if any(isnan(A(:,i)))
B(:,i) = NaN ;
end
end

More Answers (1)

Jan
Jan on 27 Sep 2017
Without a loop and bsxfun:
A = randi(9, 4, 3, 2);
A(6) = NaN;
A(:, any(isnan(A), 1)) = NaN;

Community Treasure Hunt

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

Start Hunting!