主要内容

类没有属性

如果 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;

另请参阅

主题