我仍然无法在 matlab 中创建可用的东西。
任务很简单。我有两个文件:devideHistory.log deal.log在这两个文件中,我们只考虑前两列。所以第一个文件包含应该形成图形的 X 和 Y。第二个文件包含应在图形上显示的标记的 X 和 Y。在这个社区的帮助下,创建了这样的程序
clear
fDevide = fopen('devideHistory.log');
data = textscan(fDevide, '%f:%f:%f:%f %f,%f %f,%f');
fclose(fDevide);
% hh:min:sec:millisec
secvec = [60*60 60 1 1e-3];
x = [data{1:4}] * secvec';
flvec = [1 1e-16];
y = [data{5:6}] * flvec';
xindays = x / (24*60*60);
plot(xindays, y);
% set(gca, 'YTickLabel', get(gca,'YTick'))
% datetick('x', 'HH:MM:SS');
hold on
fDeals = fopen('deals.log');
data = textscan(fDeals, '%f:%f:%f:%f %f,%f %f,%f %f,%f %f');
fclose(fDeals);
% hh:min:sec:millisec
secvec = [60*60 60 1 1e-3];
x = [data{1:4}] * secvec';
flvec = [1 1e-16];
y = [data{5:6}] * flvec';
xindays = x / (24*60*60);
plot(xindays, y, 'go','MarkerSize',6,'LineWidth',3);
% i need to set enough precision on Y but this doesn't work because
% while zooming labels doesn't update
set(gca, 'YTickLabel', get(gca,'YTick'))
% i want to have "time" on X but this doesn't work because
% while zooming new labels doesn't appear
datetick('x', 'HH:MM:SS');
结果:
但是缩放功能有两个问题:
- 从 X 放大标签时消失,因此 X 处根本没有标签如何始终在 X 轴上显示“标签”
- 虽然 Y 上的缩放标签没有更新,因为结果标记显示在错误的位置,为什么缩放标记会改变位置?
好吧,我的任务非常简单明了。matlab中是否有简单直接的解决方案?上面的代码已经包含了几个“hacks”,但仍然不能按预期工作。恐怕继续破解它没有意义。有人可以提出另一种方法吗?可能matlab只是不适合我的需要?