2010-09-20 110 views
2

我已经将来自文本文件的时间数据(它以字符串形式存储在Matlab中)导入日期&。我可以通过使用datenum和datestr命令将字符串转换为数字数据并返回。如何在matlab图上以字符串形式呈现日期

我的问题是与创建数字。我可以很容易地将数据与数值日期&时间值进行比较,但由于它是作为数字存储的,所以它不是非常有用。另一方面,我发现不可能针对字符串绘制数据。有没有一种方法可以将数据与数值日期&时间值进行比较,但以友好的方式呈现为字符串?

最好的问候,

回答

1

看一看datetick。或者你可能更喜欢rotate tick label。有关调整刻度标签的更多内容由stackoverflow post提供。

+0

是,datetick数字日期和时间数据转换成字符串。但是,正如我注意到的那样,它在第一个情节期间只做了一次。在绘制图形后,当它被缩放时,正常数据会得到新的刻度(步长较小),而不会出现新的字符串刻度。数据光标工具也只返回数字数据,不会被转换。有没有办法解决这个问题? – RemekGdansk 2010-09-22 11:22:03

+0

查看'ResizeFcn'的文档。使用* set(gcf,'ResizeFcn',@ resizeFunctionHandle)*'可以为resize事件分配一个函数(句柄)。在这种情况下* resizeFunctionHandle *在每个数字调整大小时执行。 – zellus 2010-09-22 11:39:59

0

我不知道这是否是你所要求的:

date_numeric = 1:5; 
date_string={'date_1' 'date_2' 'date_3' 'date_4' 'date_5'}; 
y = rand(size(date_numeric)); 
plot(date_numeric, y, 'b') 
set(gca, 'XTick',1:5, 'XTickLabel',date_string) 

alt text

相关问题