How to efficiently delete rows from very large matrix

1 visualización (últimos 30 días)
Sami Seppälä
Sami Seppälä el 10 de Mzo. de 2022
Comentada: Sami Seppälä el 11 de Mzo. de 2022
I have to delete rows from a very large matrix (in order of 2 000 000x30). I am currently using the following code the code does this very slowly. Currently going through one matrix takes a couple of hours.
[n,m] = size(data);
%%% nan check
data_nan_checked =zeros(1,m);
ok_row_count = 0;
for i = 1:n
nan_found = 0;
for j = start_column:end_column
if isnan(data(i,j))
nan_found = 1;
end
end
if nan_found == 0 %&& row_ave > 0
ok_row_count = ok_row_count + 1;
data_nan_checked(ok_row_count,:) = data(i,:);
end
end

Respuesta aceptada

Torsten
Torsten el 10 de Mzo. de 2022
data(any(isnan(data),2),:) = [];

Más respuestas (0)

Categorías

Más información sobre Get Started with MATLAB en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by