subsetting dates in a matrix

5 Ansichten (letzte 30 Tage)
Cagdas Ozgenc
Cagdas Ozgenc am 1 Nov. 2013
Kommentiert: Cedric am 1 Nov. 2013
Hello,
I have a time series in a matrix and first column is serial date numbers (up to millisecond precision), and other columns my samples. I would like to get those rows that belong to for example '12-Oct-2012'. I couldn't figure out how to write the logical operator to get a slice of this matrix. I would like to hopefully avoid some sort of slow string comparison.
Thanks in advance
  2 Kommentare
Azzi Abdelmalek
Azzi Abdelmalek am 1 Nov. 2013
Show the two first rows of your data
Cagdas Ozgenc
Cagdas Ozgenc am 1 Nov. 2013
Bearbeitet: Cagdas Ozgenc am 1 Nov. 2013
735236.4590277778 1.4264e+03 1.4272e+03 1.4217e+03
735236.4597222222 1.4237e+03 1.4252e+03 1.4234e+03
735236.4604166667 1.4247e+03 1.4267e+03 1.4244e+03

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Cedric
Cedric am 1 Nov. 2013
Bearbeitet: Cedric am 1 Nov. 2013
You already have serialized/numeric time stamps in you array, so just convert date boundaries to numeric, and compare numbers: assuming your array is named data..
lb_incl = datenum( '12-Oct-2012', 'dd-mmm-yyyy' ) ;
ub_excl = datenum( '13-Oct-2012', 'dd-mmm-yyyy' ) ;
id = data(:,1) >= lb_incl & data(:,1) < ub_excl ;
dailyMean = mean( data(id,2) ) ;
or
dailySlice = data(id,2:end) ;
  2 Kommentare
Cagdas Ozgenc
Cagdas Ozgenc am 1 Nov. 2013
Thanks. In this scenario this is a good option.
Cedric
Cedric am 1 Nov. 2013
You're welcome.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Azzi Abdelmalek
Azzi Abdelmalek am 1 Nov. 2013
If A is your cell array
c1=cellstr(datestr(A(:,1),'dd-mm-yyyy'))
idx=ismember(c1,'12-10-2012')
out=A(idx,:)
  1 Kommentar
Cagdas Ozgenc
Cagdas Ozgenc am 1 Nov. 2013
Takes forever on my dataset of million lines. It converts all serial numbers back to string and then compares those strings. Then gets the indices. Then gets the data.
Thanks anyways

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Dates and Time finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by