¿Por qué esta clase MATLAB no conserva sus propiedades?
Debe haber algo muy simple que me estoy perdiendo aquí. Tengo una clase MATLAB que crea una figura que contiene dos botones, cada botón llama a la misma función, pero los controladores de esos botones no se retienen dentro de esa función, y no sé por qué.
Aquí está la clase, 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
Si lo llamo, abre la figura y muestra los números de identificador de los botones:
>> T = Test
T =
Test with properties:
Figure: 8
ButtonA: 745.000122070313
ButtonB: 103.002319335938
>> T.ButtonA
ans = 745.000122070313
>> T.ButtonB
ans = 103.002319335938
Si presiono el botón A, la función devuelve dos valores vacíos, como si las propiedades no se hubieran establecido:
Button =
745.000122070313
ans =
[]
ans =
[]
Si presiono el botón B, la función devuelve el valor para el botón A, pero un valor vacío para el botón B:
Button =
103.002319335938
ans =
745.000122070313
ans =
[]
Estaría muy agradecido por cualquier sugerencia.