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

2 visualizaciones (últimos 30 días)
khan
khan el 27 de Sept. de 2017
Comentada: Stephen23 el 27 de Sept. de 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

Respuesta aceptada

KSSV
KSSV el 27 de Sept. de 2017
Editada: KSSV el 27 de Sept. de 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

Más respuestas (1)

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

Categorías

Más información sobre Matrix Indexing en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!