MATALB に次のクラスがあります。
classdef MyClass
properties
a;
end
methods
function foo(obj)
obj.a = 1;
end
end
end
今、私はこれをします。
mc = MyClass;
mc.foo();
今、これがあります。
mc.a == []
これは私が理解していないものです。私は期待していました
mc.a == [1]
関数 foo がオブジェクトの状態を変更しないのはなぜですか?
これが非常に基本的な質問である場合は申し訳ありません。私は Java や C# などの言語に慣れていますが、セマンティクスは明らかに期待どおりです。
次のようにすると、期待どおりに動作することがわかりました。
classdef MyClass < handle
しかし、MATLAB の値クラス (つまり、ハンドル クラスではない) で目的の動作を取得するにはどうすればよいでしょうか?