Working with Dates,Problem with syntax

2 ビュー (過去 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 Center および File ExchangeDates and Time についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by