相关疑难解决方法(0)

如何修改Matlab对象的属性

我创建了一个MATLAB类,类似于:

classdef myclass

  properties
      x_array = [];
  end

  methods
    function increment(obj,value)
       obj.x_array = [obj.x_array ; value);
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

问题是,x_array当我调用increment()函数时,属性永远不会被修改:ex:

>>s = myclass
>>increment(s,5)

>>s.x_array
ans = []
Run Code Online (Sandbox Code Playgroud)

我做了一些研究,我得出的结论是,这是因为MATLAB使用了Lazy Copy for objects,使得我的类继承HANDLE类应该已经解决了这个问题,但事实并非如此,有人知道为什么会发生这种情况吗?如果扩展句柄类是解决方案,这不是正确的方法:

classdef myclass < handle
Run Code Online (Sandbox Code Playgroud)

还是有任何额外的步骤?

matlab properties matlab-class

24
推荐指数
1
解决办法
2万
查看次数

标签 统计

matlab ×1

matlab-class ×1

properties ×1