Warum behält diese MATLAB-Klasse ihre Eigenschaften nicht bei?

Es muss etwas sehr Einfaches geben, das mir hier fehlt. Ich habe eine MATLAB-Klasse, die eine Abbildung mit zwei Drucktasten erstellt. Jede Taste ruft dieselbe Funktion auf, aber die Ziehpunkte für diese Tasten werden in dieser Funktion nicht beibehalten, und ich weiß nicht, warum.

Hier ist die Klasse, vereinfacht ...

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

Wenn ich es nenne, öffnet es die Abbildung und zeigt die Handle-Nummern für die Schaltflächen an:

>> T = Test
T = 
  Test with properties:

     Figure: 8
    ButtonA: 745.000122070313
    ButtonB: 103.002319335938
>> T.ButtonA
ans = 745.000122070313
>> T.ButtonB
ans = 103.002319335938

Wenn ich Knopf A drücke, gibt die Funktion zwei leere Werte zurück, als ob die Eigenschaften nicht gesetzt worden wären:

Button =
          745.000122070313
ans =
     []
ans =
     []

Wenn ich Knopf B drücke, gibt die Funktion den Wert für Knopf A zurück, aber einen leeren Wert für Knopf B:

Button =
          103.002319335938
ans =
          745.000122070313
ans =
     []

Ich wäre für Anregungen sehr dankbar.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage