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

2 Ansichten (letzte 30 Tage)
khan
khan am 27 Sep. 2017
Kommentiert: Stephen23 am 27 Sep. 2017
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

Akzeptierte Antwort

KSSV
KSSV am 27 Sep. 2017
Bearbeitet: KSSV am 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

Weitere Antworten (1)

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

Kategorien

Mehr zu Resizing and Reshaping Matrices finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!