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.