把两个日期向量

1视图(30天)
Sabbas
Sabbas 2012年8月6日
亲爱的所有,
我有
一个= {
“2/11/2008”
“30/11/08”
“28/12/08”
“25/01/09”
“22/02/09”
“22/03/09”
“19/04/09”
“17/05/09”
“14/06/09”
“12/7/2009”
“9/8/2009”
“6/9/2009”
“4/10/2009”
“1/11/2009”
“29/11/09”
“27/12/09”
“31/01/10”
“28/02/10”
“28/03/10”
“25/04/10”
“23/05/10”
“20/06/10”
“18/07/10”
“15/08/10”
“12/9/2010”}
B = {
“1/4/2009”
“2/1/2009”
“3/1/2009”
“4/5/2009”
“5/3/2009”
“5/31/2009”
“7/5/2009”
“8/2/2009”
“8/30/2009”
“10/4/2009”
“11/1/2009”
“11/29/2009”
“1/3/2010”
“1/31/2010”
“2/28/2010”
“4/4/2010”
“5/2/2010”
“5/30/2010”
“7/4/2010”
“8/1/2010”
“8/29/2010”
“10/3/2010”
“10/31/2010”
“11/28/2010”
“1/2/2011”
“1/30/2011”
“2/27/2011”
“4/3/2011”
“5/1/2011”
“5/29/2011”
“7/3/2011”
“7/31/2011”
“8/28/2011”
“10/2/2011”
“10/30/2011”
“11/27/2011”
“1/4/2009”
“2/1/2009”}
有时我要么矢量A或B,我想找到一个统一的代码,将这些向量转换为格式dd / mm / yy无论是否我有一个B
谢谢
3评论
马特无花果
马特无花果 2012年8月7日
所以你可以保证每组日期至少会有一天D, D > 12 ?你没有在最初的声明中指定,但最好知道!

登录置评。

接受的答案

安德烈Bobrov
安德烈Bobrov 2012年8月7日
= regexp (DateInput”(^ \ d *) (? = /) ',“匹配”);
如果任何(str2double (cat ({}): 1) > 12)
dfmt =“dd / mm / yyyy”;
其他的
dfmt =“mm / dd / yyyy”;
结束

答案(1)

每•艾萨克森
每•艾萨克森 2012年8月6日
编辑:每•艾萨克森 2012年8月6日
试一试
cac = cellfun (@ (str)转置(sscanf (str,' % d / % d / % * d '))
一个,“大学”、假);
num = cell2mat (cac);
isd = (num > = 13日1);
如果(不是所有(isd))
味精=“不能确定”;
elseif所有(isd)
味精=“非法日期”;
elseifisd (1)
味精=“天第一”;
elseifisd (2)
味精=“月第一”;
其他的
味精=“错误代码”;
结束
1评论
每•艾萨克森
每•艾萨克森 2012年8月6日
为了避免我编辑和引入了一个错误,现在是固定的。

登录置评。

标签

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!