【发布时间】:2014-07-14 23:42:35
【问题描述】:
我有带有相关日期的股票价格数据,存储在带有 matlab 格式日期数字的列向量中。
我经常需要对日期进行循环或查找,到目前为止,我意识到使用“外部簿记”,例如
for i = 1:length(dates)
thisDate = dates(i)
end
或者,甚至更糟
iDate = find(dates == thisDate, 1)
我通常必须做非常相似的操作,所以我想为我构建一个封装此功能的日期对象。通过使用公共属性来做到这一点是微不足道的,例如
dates.datenum(i)
dates.datestr(i)
dates.findOneYearEarlier(i)
等等
但是
我需要能够直接访问向量以保持兼容性。
因此,直接访问我的日期对象需要产生一个有效的日期编号。 示例:
dates(i) == 730910 % right now
dates.datenum(i) == 730910 % how I'm able to do it
我需要两者同时工作。有什么办法可以在matlab中做到这一点吗?
我提出了一些想法,但我不确定它们的成效如何:
不是拥有一个管理所有日期的对象,而是每个对象只有一个日期,然后制作这些对象的向量。可能非常缓慢,并且难以构建查找...
只需在需要的地方提取一个 datenums 向量,并将其输入到旧代码中。由于旧的东西不断得到更新,这使事情变得复杂,而不是让它变得更容易。
以某种方式扩展矢量类,但我完全不知道从哪里开始。
感谢您的想法!
【问题讨论】: