Remove rows by time with datenum
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
Hi.I have a mx15 matrix. In column 1 are datenum values (datenum(Y,M,D,H,MN,S)). I want to remove rows if the time is earlier than 11:00 or later than 14:00. How would one do that ?
0 Commenti
Risposta accettata
dbmn
il 14 Lug 2017
Modificato: dbmn
il 14 Lug 2017
assuming that A is your matrix with A(:,1) the column of your datenums, then simply do
% Determine which rows to delete
% (note that the "hours" of datenum are behind the decimal point)
% hence we do mod 1 to just get that number
rows_to_delete = mod(A(:,1),1)<11/24 | mod(A(:,1),1)>14/24;
% Delete them
A(rows_to_delete, :) = [];
Or if you are using a newer version of matlab you could get to some extra comfort and use datetime
% Convert to datetime
new_time = datetime(A(:,1), 'ConvertFrom', 'datenum');
% Determine which rows to delete
rows_to_delete = hour(new_time)<11 | hour(new_time)>14;
% Delete them
A(rows_to_delete, :) = [];
0 Commenti
Più risposte (0)
Vedere anche
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!