exponenta event banner

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

Если класс MATLAB ® имеет метод ,mymethod, который возвращает класс дескриптора со свойством, 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;

Связанные темы