通过matlab中的引用方法传递

时间:2013-01-04 21:56:42

标签: matlab reference

我正在为Matlab开发一个机器人应用程序。我在C#,PHP,js等方面经验丰富。

如果我创建的对象可以某种方式通过引用传递,我会很高兴。我听说有些东西叫做“处理对象”,有些东西叫做“价值对象”。我找不到任何关于如何创建“句柄对象”的具体文档,看起来它们通常是图形对象。

我有一些设计模式,当通过引用传递时很容易实现。我希望某些对象能够共享“模拟空间”,而不会将每个空间都变成全局变量。我想避免在任何地方传递ID,以保持对象同步。我想在机器人之间共享环境对象,而不必担心传递此对象实际上会复制它。 (随着时间的推移会导致错误)

我开始觉得我唯一的解决方案就是拥有一个奇怪的全局“对象代理”,它拥有许多常见系统对象的最新副本。我希望避免这种事情!

任何建议都会很棒!

2 个答案:

答案 0 :(得分:3)

句柄对象由以下语法

创建
classdef myClass < handle
   properties
      % properties here
   end
   methods
      % methods here
   end
end

开始查看文档的好地方是classes start page。请注意,值和句柄类仅在R2008a中实现,并且自R2009a以来相当无错误(尽管最近的版本已经提高了性能)。

如果您来自其他语言,this section about the differences between Matlab and other languages OOP可能会有用。

答案 1 :(得分:0)

您的类应继承自handle抽象类

    classdef MyHandleClass < handle
         % // class stuff

具有此语义的类可以通过类似java的方式通过引用传递。

还要考虑指南的this section