2012-03-29 99 views
0

我有这样的一些变量:
如何日期转换数字在Matlab

a(1)=00:26:00 
a(2)=744:32:00 
a(3)=8040:33:00 

我想将它们转换为数字,所以我用了datenum命令。
最大的数字应该是8040:33:00,但看看会发生什么。

datenum(a([1 2 3])) 

ans = 

1.0e+005 * 

7.3487 
7.3485 
7.3486 

但如果我不计算(1):

datenum(a([2 3])) 

ans = 

1.0e+005 * 

7.3490 
7.3520 

That's,我想要得到的结果。我认为问题是(2)和(3)有24小时以上,但我没有找到任何方法来解决这个问题。
谢谢。

+0

你的意思是'a {1} = '00:26:00''? – Memming 2012-03-29 17:46:45

回答

1

你没有给我们你的实际投入。有

a(1)=00:26:00 
a(2)=744:32:00 
a(3)=8040:33:00 

意味着a持有三个零。 (doc colon解释了为什么。)

如果我的猜测,你实际上做的是正确的,你应该能够使用

cellfun(@datenum, a) 

我还没有深刻检查,但行为看起来有点令人惊讶的确如此。您可能需要联系MathWorks支持并提交错误报告。

+0

已解决。克里斯托弗·克鲁伊齐格是对的。随着cellfun功能,它完美的作品。非常感谢你。 – user1297712 2012-03-29 18:50:53