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

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

Похожие темы