Oop MATLAB-如何高效地使用event.eventData
有关我问题的背景信息和背景,请阅读 请注意,在我的Oop MATLAB-如何高效地使用event.eventData,oop,matlab,Oop,Matlab,有关我问题的背景信息和背景,请阅读 请注意,在我的dynamiclottercode的updatePlot()方法中,我有点“接触”了DynamicDataset属性,如下所示: function updatePlot(obj, propNum) X = get(obj.LH(propNum), 'XData'); Y = get(obj.LH(propNum), 'YData'); X(end+1) = obj.(dynProps{propNum}).newestDa
dynamiclotter
code的updatePlot()
方法中,我有点“接触”了DynamicDataset
属性,如下所示:
function updatePlot(obj, propNum)
X = get(obj.LH(propNum), 'XData');
Y = get(obj.LH(propNum), 'YData');
X(end+1) = obj.(dynProps{propNum}).newestData(1);
Y(end+1) = obj.(dynProps{propNum}).newestData(2);
set(obj.LH(propNum), 'XData', X, 'YData', Y);
end
updatePlot
是一个侦听器回调。我想知道,如果将数据“呈现”给回调函数,是否会更有效,而不是“接触”以获取最新数据。但我不确定(a)如何使用event.eventData
(文档中提供的示例我不太清楚),以及(b)这是否会产生更好或更差的性能
所以我想我的主要问题是,updatePlot()
访问newestData
的最佳方式是什么,如上面的方法所述:“进入并检索它”或使用event.eventData
将数据点“发送”到函数以进行绘图
我希望这不是非常模糊。您首先需要有一个定义事件的类(在MyClass.m中):
然后从您的obj
中触发事件,并让侦听器收听该事件:
obj = MyClass;
l = addlistener(obj, 'MyEvent', @(evtSrc,evtData)disp(evtData.Data));
notify(obj, 'MyEvent', eventData)
无论何时调用notify(…)
,侦听器回调中的evtData
参数都将在其data
属性中包含您的数据:
>> notify(obj, 'MyEvent', eventData)
XData: [1 2 3 4 5 6 7 8 9 10]
YData: [1 2 3 4 5 6 7 8 9 10]
X = 1:10;
Y = 1:10;
data = struct('XData', X, 'YData', Y);
eventData = MyEventData(data);
obj = MyClass;
l = addlistener(obj, 'MyEvent', @(evtSrc,evtData)disp(evtData.Data));
notify(obj, 'MyEvent', eventData)
>> notify(obj, 'MyEvent', eventData)
XData: [1 2 3 4 5 6 7 8 9 10]
YData: [1 2 3 4 5 6 7 8 9 10]