3

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

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

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

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

任何建议都会很棒!

4

2 回答 2

3

句柄对象由以下语法创建

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

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

如果您来自其他语言,本节关于 Matlab 和其他语言 OOP 之间的差异可能会很有用。

于 2013-01-04T22:04:20.747 回答
0

您的类应该从句柄抽象类继承

    classdef MyHandleClass < handle
         % // class stuff

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

还要考虑指南的这一部分

于 2013-01-04T22:02:08.107 回答