如何在不实例化的情况下从matlab函数中调用matlab类方法

时间:2018-07-31 14:27:07

标签: matlab function class oop simulink

我创建了一个matlab类,并希望在每个仿真周期中调用Simulink中matlab函数中的一个公共方法。

matlab类:

...
function fcn(inst)
...

matlab函数:

...
i = classInst;
fcn(i);
...

似乎每个模拟周期都会实例化该类,因此,该方法不起作用。

如何从m文件中多次调用一个实例的类方法?

谢谢

1 个答案:

答案 0 :(得分:0)

结合使用永久关键字和isempty检查来创建和存储实例。在代码中使用以下模式。

function y = fcn(u)

persistent obj
if isempty(obj)
  obj = MyObj;
end

y = method(MyObj, u);

对于此代码,您的类仅实例化一次。它可以具有在每次调用之间保存值的属性。