Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MATLAB中收听绘图事件_Matlab_Events_Plot_Listener - Fatal编程技术网

在MATLAB中收听绘图事件

在MATLAB中收听绘图事件,matlab,events,plot,listener,Matlab,Events,Plot,Listener,我需要遵循特定的轴,以了解何时在那里执行绘图 这样就可以根据新绘制的数据调整一些其他gui元素 例如,作为最基本的任务,我希望跟踪XLim中的更改。但是,如果由新绘图负责,则不会触发XLim侦听器属性 下面的示例生成输出: Event: XLim = [1 2] And now (without event triggered) XLim = [1 5] 例如: clear all close all clear handles plot(1:10) ax = gca; addlistener

我需要遵循特定的轴,以了解何时在那里执行绘图

这样就可以根据新绘制的数据调整一些其他gui元素

例如,作为最基本的任务,我希望跟踪XLim中的更改。但是,如果由新绘图负责,则不会触发XLim侦听器属性

下面的示例生成输出:

Event: XLim = [1 2]
And now (without event triggered) XLim = [1 5]
例如:

clear all
close all
clear handles
plot(1:10)
ax = gca;
addlistener(ax, 'XLim', 'PostSet', @(x,y) fprintf('Event: XLim = [%d %d]\n',y.AffectedObject.XLim));
ax.XLim = [1 2];
plot(1:5)
fprintf('And now (without event triggered) XLim = [%d %d]\n',ax.XLim)
这似乎不是MATLABian构建gui的方式,它假定显式轴格式化命令跟随绘图命令


感谢您提出一些巧妙的解决方案。

欢迎来到SO。请添加一个详细的代码。请解释为什么它不适用于您,以及预期的结果是什么。是您自己的应用程序在这些轴上进行绘图吗?你不能在绘图后显式地调整GUI元素吗?@Adriaan-我没有代码显示-问题是关于MATLAB功能以及如何使用它们来实现我的目标。@LuisMendo我想准备axis,让其他人在上面绘图。这就是为什么在打印后应用显式格式的解决方案是不可取的——某种侦听器可能会这样做。@ipap我明白了。为了确保我理解这个问题:您尝试了
addlistener
,但没有成功,对吗?对于我来说,例如,当我使用
xlim
修改轴限制时,这种方法有效,但当
绘图
修改轴限制时则无效。奇怪的是,根据(这是一个非常好的博客)的说法,它应该:“只要轴限制发生变化(由于缩放、平移、绘图等原因),his就会触发MyCallbackPCN(hAxes、eventData)”:“欢迎使用SO。请添加一个详细的代码。请解释为什么它不适用于您,以及预期的结果是什么。是您自己的应用程序在这些轴上进行绘图吗?你不能在绘图后显式地调整GUI元素吗?@Adriaan-我没有代码显示-问题是关于MATLAB功能以及如何使用它们来实现我的目标。@LuisMendo我想准备axis,让其他人在上面绘图。这就是为什么在打印后应用显式格式的解决方案是不可取的——某种侦听器可能会这样做。@ipap我明白了。为了确保我理解这个问题:您尝试了
addlistener
,但没有成功,对吗?对于我来说,例如,当我使用
xlim
修改轴限制时,这种方法有效,但当
绘图
修改轴限制时则无效。奇怪的是,根据(这是一个非常好的博客)的说法,它应该:“只要轴限制发生变化(由于缩放、平移、绘图等原因),his就会触发MyCallbackPCN(hAxes、eventData):”