Если класс MATLAB® имеет метод, mymethod
, это возвращает класс Handle со свойством, myprop
, вы не можете сгенерировать код для следующего типа присвоения:
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;