【问题标题】:How to call a matlab class method out of a matlab function without instantiating如何在不实例化的情况下从 matlab 函数中调用 matlab 类方法
【发布时间】:2019-01-07 23:46:54
【问题描述】:

我已经创建了一个 matlab 类,并希望从 Simulink 中的 matlab 函数中调用每个模拟循环的公共方法。

ma​​tlab 类:

...
function fcn(inst)
...

ma​​tlab函数:

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

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

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

谢谢

【问题讨论】:

标签: matlab function class oop simulink


【解决方案1】:

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

function y = fcn(u)

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

y = method(MyObj, u);

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

【讨论】:

猜你喜欢
  • 2015-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-19
  • 2011-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多