Simple wild card function for ismember??
이전 댓글 표시
I have a list of dates and times as string values and (e.g '29/1/2010 20:30:00' etc) and I would like to find all values at a specific time, regardless of day.
Is there a simple wild card function that I can use with ismember to identify these? I have tried:
idx = ismember(Timestamp_str, {'*20:30:00'});
I have also tried regexp, searched the web and help files to no avail.....
채택된 답변
추가 답변 (2개)
Andrei Bobrov
2011년 7월 19일
d1 = datenum(Timestamp_str);
d2 = datenum('00/0/0000 20:30:00');
out = Timestamp_str(abs(rem(d1,1)-d2)<1e6*eps,:)
ADD variant with 'datevec'
dv = datevec(Timestamp_str);
out = Timestamp_str(all(bsxfun(@eq,dv(:,4:6),[20 30 0]),2),:);
adding in answer on the comment Walter's about milliseconds
dv(:,end) = round(dv(:,end));
dv = datevec(datenum(dv));
댓글 수: 3
Walter Roberson
2011년 7월 19일
Would it be more robust to datevec() and look at the components ?
Andrei Bobrov
2011년 7월 19일
Dear Walter! I completely agree with you and thinking about using 'datevec'.
Add variant with 'datevec'
Walter Roberson
2011년 7월 19일
Though 20:29:59.5 and up to but excluding 20:30:00.5 would probably print out as 20:30:00, so rounding the seconds + milliseconds combination might be called for.
Jan
2011년 7월 19일
idx = strncmpr(Timestamp_str, '20:30:00', 8);
카테고리
도움말 센터 및 File Exchange에서 Calendar에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!