Delete rows based on column value
15 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
David du Preez
le 10 Avr 2017
Modifié(e) : Andrei Bobrov
le 10 Avr 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.
0 commentaires
Réponse acceptée
Andrei Bobrov
le 10 Avr 2017
Modifié(e) : Andrei Bobrov
le 10 Avr 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)),:);
0 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Matrices and Arrays dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!