Working with Dates,Problem with syntax

조회 수: 4 (최근 30일)
Aditya
Aditya 2014년 1월 12일
댓글: Aditya 2014년 1월 13일
I have a set of dates stored in b array as 'dd-mm-yyyy' as strings. I need to write queries to select dates of a particular month. So I tried doing this:
for i=2:8400
index=strfind(b,'01');
end;
for i=2:8400
if(index(i)==3)
disp(b(i));
end;
end;
But it says '??? Undefined function or method 'eq' for input arguments of type 'cell'.' I new to matlab so I'm sorry if I'm doing something stupid. Thanks.

채택된 답변

Amit
Amit 2014년 1월 12일
Following your code trend: strfind might not work in this case as for example if you are looking for January (01) in a date string like 01-01-2013, there are 3 instances where 01 can be found. If the format dd-mm-yyyy is consistent in all your data, something like this might work:
b_tmp = b(:,[4 5]);
for i = 2:8400
if strcmp(b_tmp(i),'01') % Lets say you're looking for January (01)
disp(b(i));
end
end
  댓글 수: 1
Aditya
Aditya 2014년 1월 13일
Thanks Amit,
The solution worked.Just wanted to know how to check for a particular substring in a string,as in,finding '-01-' in '01-01-2013' using strcmp.
Regards.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Azzi Abdelmalek
Azzi Abdelmalek 2014년 1월 12일
Example
s={'01-01-2013';
'11-01-2013'
'21-01-2013'
'22-03-2013'
'01-04-2013'
'21-05-2013'}
d=datevec(s,'dd-mm-yyyy');
% To search th month 01;
idx=d(:,2)==1
out=s(idx)

카테고리

Help CenterFile Exchange에서 Dates and Time에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by