为什么不是';这个MATLAB类不能保持它的属性吗?
这里一定有我遗漏的很简单的东西。我有一个MATLAB类,它创建了一个包含两个按钮的图形,每个按钮调用相同的函数,但是这些按钮的句柄没有保留在该函数中,我不知道为什么 这是课程,简化了为什么不是';这个MATLAB类不能保持它的属性吗?,matlab,class,matlab-figure,Matlab,Class,Matlab Figure,这里一定有我遗漏的很简单的东西。我有一个MATLAB类,它创建了一个包含两个按钮的图形,每个按钮调用相同的函数,但是这些按钮的句柄没有保留在该函数中,我不知道为什么 这是课程,简化了 classdef Test properties Figure ButtonA ButtonB end methods function app = Test() app.Fig
classdef Test
properties
Figure
ButtonA
ButtonB
end
methods
function app = Test()
app.Figure = figure();
app.ButtonA = uicontrol('Style', 'pushbutton', ...
'String', 'Button A', ...
'Position', [10, 10, 100, 20], ...
'Callback', @app.PressButton);
app.ButtonB = uicontrol('Style', 'pushbutton', ...
'String', 'Button B', ...
'Position', [10, 120, 100, 20], ...
'Callback', @app.PressButton);
end
function PressButton(app, Button, ~)
Button
app.ButtonA
app.ButtonB
end
end
end
如果我调用它,它会打开图形,并显示按钮的手柄编号:
>> T = Test
T =
Test with properties:
Figure: 8
ButtonA: 745.000122070313
ButtonB: 103.002319335938
>> T.ButtonA
ans = 745.000122070313
>> T.ButtonB
ans = 103.002319335938
如果我按下按钮A,函数将返回两个空值,就好像尚未设置属性一样:
Button =
745.000122070313
ans =
[]
ans =
[]
如果我按下按钮B,函数将返回按钮A的值,但按钮B的值为空:
Button =
103.002319335938
ans =
745.000122070313
ans =
[]
如果您有任何建议,我将不胜感激。您应该从handle中对类进行子类化。 检查matlab的
值
-类和句柄
-类之间的差异
为此,请更改代码中的第一行:
classdef Test < handle
classdef测试
是的,已经解决了。我将阅读该链接以了解其含义。谢谢