Delete rows based on column value

14 visualizaciones (últimos 30 días)
David du Preez
David du Preez el 10 de Abr. de 2017
Editada: Andrei Bobrov el 10 de Abr. de 2017
Hi. I have a 8761x14 matrix. I wanted to consider the first 24 rows as I have hourly data. If all the values in column 8 are zero (ie. 24 zeros) I want to delete all 24 rows and then repeat this considering every 24 rows.

Respuesta aceptada

Andrei Bobrov
Andrei Bobrov el 10 de Abr. de 2017
Editada: Andrei Bobrov el 10 de Abr. de 2017
Let A - your matrix [8761 x 14]
[m,n] = size(A);
A1 = [A; nan(mod(-m,24),n)];
A1 = reshape(A1',n,24,[]);
Aout = A1(:,:,any(A1(8,:,:) ~= 0,2));
Aout = reshape(Aout,n,[])';
or
m = size(A,1);
i0 = ceil((1:m)'/24);
Aout = A(repelem(accumarray(i0,A(:,8)) ~= 0,accumarray(i0,1)),:);

Más respuestas (0)

Categorías

Más información sobre Matrices and Arrays 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!

Translated by