gpt4 book ai didi

matlab - 如何在 MATLAB R2014b 中访问 PropertyEvent 的新值?

转载 作者:太空宇宙 更新时间:2023-11-03 19:17:53 25 4
gpt4 key购买 nike

背景

在以前版本的 MATLAB(例如 R2013b)中,我有一个巧妙的技巧,我将监听器附加到坐标轴句柄的 YLim 属性,当坐标轴 y 限制发生变化时它会通知我:

addlistener(gca, 'YLim', 'PreSet', @(src,ev_data) disp(ev_data.NewValue))

我用它来更新第二个图,该图将显示这些轴中可见数据子集的一些汇总统计信息。那太棒了!您放大,第二个图形会自行更新。太好了。

将其设为 PreSet(而不是 PostSet)监听器很有用,因为这样我就可以检查新值是否与旧值相同,从而避免重新计算这些统计数据是不必要的。

问题

但是,这在 R2014b 中不再适用于我。我能够附加事件监听器,但是当我触发事件时,我收到此错误消息:

No appropriate method, property, or field NewValue for class event.PropertyEvent.

我相信这与 HG2 图形系统有关。通过适当的断点,我们可以查看事件数据。在 R2013b 中:

K>> ev_data
ev_data =
handle.PropertySetEventData

K>> get(ev_data)
Type: 'PropertyPreSet'
Source: [1x1 schema.prop]
AffectedObject: [1x1 axes]
NewValue: [0.5000 220.5000]

在 R2014b 中,我们似乎缺少 NewValue 字段:

K>> ev_data
ev_data =
PropertyEvent with properties:

AffectedObject: [1x1 Axes]
Source: [1x1 matlab.graphics.internal.GraphicsMetaProperty]
EventName: 'PreSet'

它去哪儿了?!当然必须有一种方法来访问它。如果您无法访问要为其设置的新值,那么属性预设事件处理程序就有点无用了。

最佳答案

属性 meta.property 对象包含属性的设置和获取方法的函数句柄。 SetMethod 属性包含属性的 set 方法的函数句柄,GetMethod 属性包含属性的 get 方法的函数句柄。希望这个 link会帮助你很多

关于matlab - 如何在 MATLAB R2014b 中访问 PropertyEvent 的新值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27387898/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com