概述
看起来您正在尝试存储鼠标单击位置的值,然后将这些值用作resize函数的一部分(稍后将调用它).我会做一些改变.
首先,使用另一个回调来捕获鼠标单击,而不是while循环.例如,您可以使用图形ButtonDownFcn回调来触发一个功能,该功能旨在将鼠标位置捕获到某个位置.
其次,有更好的方法来存储鼠标位置,正确的方法将取决于您的技能水平和您的程序的需要.其中一些存储数据的方法是:
>在另一个回调的参数中,就像你现在正在做的那样.这非常痛苦,但它可能有效.如果它足以满足您的需求,您可以保留它.
>大多数Matlab对象中的“userdata”字段.一些人提出了这个问题,它会很好.我不喜欢依赖于此,因为我总是担心其他一些工具也会想要使用userdata字段,而工具会覆盖数据.
>全局变量值.我不喜欢使用全局变量,出于同样的原因我不喜欢使用userdata字段.但是全局变量有时候是最好的解决方案.如果您一次只有一个数字,这可能是解决您问题的最简单,最省力的解决方案. (多个数字将推动您使用userdata解决方案作为最简单的解决方案.)
>提供一个句柄类来存储一些数据(即x和y),并将该类的副本提供给两个回调中的每一个(ButtonDownFcn和ResizeFcn).这允许两个函数传递数据,而不会污染任何其他人的命名空间.这是我最喜欢的解决这类问题的方法,所以我将在下面给它一个更详细的描述.
要执行上面的选项(4),需要一个类来存储看起来像这样的数据:
classdef ApplicationData < handle
properties (SetAccess = public, GetAccess = public)
x = [];
y = [];
end
end
请注意,由于ApplicationData扩展了句柄,因此Matlab将其视为传递引用对象,这对
最后
以上就是长情冥王星为你收集整理的matlab 回调函数,在Matlab中将实际值传递给回调函数的全部内容,希望文章能够帮你解决matlab 回调函数,在Matlab中将实际值传递给回调函数所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复