クラスにプロパティを含めない
MATLAB® クラスが、プロパティ myprop
をもつハンドル クラスを返すメソッド mymethod
をもっている場合、以下のタイプの代入に対してはコードを生成できません。
obj.mymethod().myprop=...
たとえば、以下のクラスを考えます。
classdef MyClass < handle properties myprop end methods function this = MyClass this.myprop = MyClass2; end function y = mymethod(this) y = this.myprop; end end end
classdef MyClass2 < handle properties aa end end
関数 foo
に対してコードを生成できません。
function foo
h = MyClass;
h.mymethod().aa = 12;
h.mymethod()
がタイプ MyClass2
のハンドル オブジェクトを返します。MATLAB では、h.mymethod().aa = 12;
という代入で、そのオブジェクトのプロパティが変わります。コード生成は、この代入をサポートしていません。解決法
オブジェクトを返してからそのオブジェクトのプロパティに対して値を代入するようにコードを書き直します。
function foo
h = MyClass;
b=h.mymethod();
b.aa=12;