我需要在 Matlab S 函数的几个函数中使用一个对象。该对象用作库,需要设置与服务器的连接,在每个循环中从中获取数据,并在仿真结束时关闭它。对象的使用是这样的:
ClassX ObjectX;
[Handle clientID]=ObjectX.setConnection(...);
while(coonection)
[result]=ObjectX.getPosition(Handle ClientID,...);
[result]=ObjectX.getAngle(Handle ClientID,...);
...
end
[result]=ObjectX.CloseConnection(...);
它不方便实例并关闭每个循环中的通信。所以我想创建对象并在"function setup(block)
"上设置连接,更新"function Update(block)
"上的数据并关闭"function Terminate(block)
"上的连接,但要做到这一点,我需要在函数之间共享"ObjectX"和"clientID"。
我希望你能帮助我。
您可以使用
Singleton 类,该类实例化一次,每次请求时都会返回相同的实例。
classdef (Sealed) SingleInstance < handle
methods (Access = private)
function obj = SingleInstance
end
end
methods (Static)
function singleObj = getInstance
persistent localObj
if isempty(localObj) || ~isvalid(localObj)
localObj = SingleInstance;
end
singleObj = localObj;
end
end
method (Access = public)
function setup(obj, block)
end
function update(obj, block)
end
function terminate(obj, block)
end
end
end
更多信息可在此处获得