首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Matlab S-Function中使用全局对象

如何在Matlab S-Function中使用全局对象
EN

Stack Overflow用户
提问于 2014-04-04 20:42:47
回答 1查看 618关注 0票数 1

我需要在Matlab S-Function的几个函数中使用一个对象。该对象被用作一个库,需要设置与服务器的连接,在每个循环中从服务器获取数据,并在模拟结束时关闭它。对象的用法是这样的:

代码语言:javascript
复制
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“。

我希望你能帮助我。

EN

回答 1

Stack Overflow用户

发布于 2014-04-04 20:49:30

您可以使用Singleton类,它只实例化一次,每次请求时都会返回相同的实例。

代码语言:javascript
复制
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

欲了解更多信息,请访问here

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22863162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档