Octave 带日期的情节出错

Octave 带日期的情节出错,octave,octave-gui,Octave,Octave Gui,我遇到了这个问题:当我在没有x值的八度音程中绘图时,一切正常。当我添加x值时(应该是日期,但我不强制使用日期格式),它会变得很奇怪 ab = rand(96,1); close all figure plot(ab) 给出了这个数字: 给出了这个数字: 正如你所看到的,x值都在1天之内,所以我甚至不知道为什么x记号显示超过1天 任何人都会有一个聪明的解释?编辑:因为,这是一个“OpenGL无法处理将小数字添加到大数字时所涉及的精度问题” 从我的观点来看,这只是一个倍频程错误,MATLAB(

我遇到了这个问题:当我在没有x值的八度音程中绘图时,一切正常。当我添加x值时(应该是日期,但我不强制使用日期格式),它会变得很奇怪

ab = rand(96,1);
close all
figure
plot(ab)
给出了这个数字:

给出了这个数字: 正如你所看到的,x值都在1天之内,所以我甚至不知道为什么x记号显示超过1天

任何人都会有一个聪明的解释?

编辑:因为,这是一个“OpenGL无法处理将小数字添加到大数字时所涉及的精度问题”


从我的观点来看,这只是一个倍频程错误,MATLAB(通过MATLAB在线测试)并没有显示这种行为。看起来,当实际
x
值相对较高时,倍频程在小
x
间隔方面存在问题,cf

子批次(2,1,1);
x=linspace(800000,800000+2*pi,100);
y=sin(x);
图(x,y);
子批次(2,1,2);
x=linspace(0,2*pi,100);
y=sin(x);
图(x,y);
相应的输出为:

看起来,一些
x
值正在被“合并”!?我还没有深入搜索关于该问题的报告错误

但是,为了解决本例中的问题,您可以尝试从
0
开始绘制数据,然后调整
xticklabels

%数据
ab=兰特(96,1);
图(1);
%无日期绘图
子批次(3,1,1);
地块(ab);
xlim([1,96]);
%带日期的绘图(标准、错误)
子地块(3、1、2);
日期=linspace(datenum('2020年11月1日00:00','dd-mmm-yyyy-HH:MM'),
日期编号('2020年11月1日23:45','dd-mmm-yyy-HH:MM'),
尺寸(ab,1))
地块(日期,ab);
日期标记('x','dd-mm-yyy-HH:mm');
xlim([日期(1),日期(结束)];
%打印日期(自定义,正确)
子批次(3,1,3);
#对于打印,减去开始日期
绘图日期=日期-日期编号('2020年11月1日00:00','dd mmm yyyy HH:MM')
绘图(绘图的日期,ab);
日期标记('x','dd-mm-yyy-HH:mm');
#添加具有重新添加的开始日期的自定义Xticklabel
xlim([图(1)的日期,图(结束)的日期);
xticklabels(cellstr)datestr(xticks+datenum('2020年11月1日00:00'),
‘dd-mmm-yyyy-HH:MM’);
这就是输出:


嗨,露西尔,事实上是的,我以前见过这个。请看这里:不幸的是,这个问题在标题中有点模糊,所以很难搜索…请看我在评论中发布的链接。这一点以前就出现过:)@TasosPapastylianou-Argh,还没发现!(甚至解决方法都是一样的。)显然是重复的。:-)嗯,有点像,你已经隔离了或多或少相同的问题/解决方案,但可能值得保留这两个问题,因为另一个问题开始时很奇怪;这似乎是一个更有针对性的问题/答案。我会留下它,并保留链接,以防它提供补充细节。:)令人惊叹的!它起作用了。干杯是的,很抱歉我搜索了相同的问题,但显然没有找到。
close all
figure
plot(datenum('01-Nov-2020 00:00','dd-mmm-yyyy HH:MM'):1/24/4:datenum('01-Nov-2020 23:45','dd-mmm-yyyy HH:MM'),ab)