我使用Matlab中的fints函数创建了一个金融时间序列。
所以我的时间是:
test3 =
desc: (none)
freq: Unknown (0)
'dates: (10)' 'times: (10)' 'series1: (10)'
'04-Jan-2010' '17:30' [ 0.0074]
'05-Jan-2010' '17:30' [ -0.0109]
'06-Jan-2010' '17:30' [ -0.0036]
'07-Jan-2010' '17:30' [ -0.0013]
'08-Jan-2010' '17:30' [ -3.2500e-04]
'11-Jan-2010' '17:30' [ 6.4900e-04]
'12-Jan-2010' '17:30' [ -0.0120]
'13-Jan-2010' '17:30' [ 0.0079]
'14-Jan-2010' '17:30' [ 0.0150]
'15-Jan-2010' '17:30' [ -0.0231]
我想绘制系列剧,但它没有绘制任何东西。你会发现附上的结果图片。我用过: 情节(TEST3);
你能帮帮我吗?我没有发现任何相关问题,我觉得这个问题非常愚蠢,但我真的无法弄明白。
非常感谢你的时间
答案 0 :(得分:1)
出于某种原因,MATLAB在绘制时间序列时为每个日期添加两个条目,一个在指定时间(例如,在您的情况下为04-Jan-2010 17:30:00),另一个在同一天的午夜(例如04 -Jan-2010 00:01:00)添加条目的相应Y值为NaN。
要绘制财务时间序列,您可以:
在plot命令中添加格式说明符。有了这个,您可以获得标记而不是线条,因为NaN条目将忽略线条样式:
plot(test3, 'o');
绘制并删除NaN条目:
p = plot(test3, 'o-');
nanidx = isnan(p.YData);
p.YData(nanidx) = [];
p.XData(nanidx) = [];