Por que essa classe MATLAB não mantém suas propriedades?
Deve haver algo muito simples que estou sentindo falta aqui. Eu tenho uma classe MATLAB que cria uma figura contendo dois botões, cada botão chama a mesma função, mas as alças desses botões não são mantidas nessa função e não sei por quê.
Aqui está a aula, simplificada ...
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
Se eu ligar, abre a figura e exibe os números de identificador dos botões:
>> T = Test
T =
Test with properties:
Figure: 8
ButtonA: 745.000122070313
ButtonB: 103.002319335938
>> T.ButtonA
ans = 745.000122070313
>> T.ButtonB
ans = 103.002319335938
Se eu pressionar o botão A, a função retornará dois valores vazios, como se as propriedades não tivessem sido definidas:
Button =
745.000122070313
ans =
[]
ans =
[]
Se eu pressionar o botão B, a função retornará o valor do botão A, mas um valor vazio para o botão B:
Button =
103.002319335938
ans =
745.000122070313
ans =
[]
Ficaria muito grato por todas as sugestões.