Класс не имеет свойства

Если класс 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;

Похожие темы

Была ли эта тема полезной?