Delete rows based on column value
14 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
David du Preez
il 10 Apr 2017
Modificato: Andrei Bobrov
il 10 Apr 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 Commenti
Risposta accettata
Andrei Bobrov
il 10 Apr 2017
Modificato: Andrei Bobrov
il 10 Apr 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 Commenti
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Matrices and Arrays in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!