Wenn ich eine Methode (Empfangen und Zurückgeben obj
) aufrufen, ändert es meine Eigenschaft.Matlab, wie eine Klassenmethode aufgerufen wird, die Prop von einer anderen Klassenmethode ändert
Aber wenn ich diese Methode von einer anderen Methode aufrufen, schlägt es fehl. Ich habe alle möglichen Wege ausprobiert, aber immer noch versagt.
classdef AClass
properties
A;
end
methods
function obj = ChangeA(obj, v)
obj.A = v;
end
function obj = CallChangeA(obj)
obj.ChangeA(4);
%obj = obj.ChangeA(4);
%ChangeA(obj, 4);
%obj = ChangeA(obj, 4);
% none of these works
end
end
end
% ------ script:
a1 = AClass;
a1.A = 1;
a1.ChangeA(2); % a1.A = 2
a2 = AClass;
a2.A = 3;
a2.CallChangeA(); % a2.A = 3 !!! not four
Wie schreibe ich den Code, also Aufruf von 1 Methode zu den anderen aktualisiert die Eigenschaft?
Ihr Beispielcode funktioniert nicht. 'ChangeA' hat' a' als Eingabe, versucht aber 'obj.A' mit' mz' zu setzen, was nicht definiert ist. – excaza