Matlab中如何通过引用传递?

Posted

技术标签:

【中文标题】Matlab中如何通过引用传递?【英文标题】:How to pass by reference in Matlab? 【发布时间】:2014-09-12 02:46:09 【问题描述】:

这是我的第一个问题,我是初学者,所以任何关于问题格式的帮助都会很好。

我在 Matlab 中编程,我想知道是否可以将对象添加到数组中,然后,当修改数组中的对象时,在原始对象中进行此修改。我认为在其他语言中是可能的,但在 Matlab 中我找不到方法。

代码的简单版本如下所示:

Obj 是一个具有多个属性的对象。

referenceObj 是 Obj 的一个实例,它具有一半的属性集

obj1...obj5 是未初始化 Obj 的实例

obj1=referenceObj;
obj2=referenceObj;
obj3=referenceObj;
obj4=referenceObj;
obj5=referenceObj;

arrayOfObj=[obj1 obj2 obj3 obj4 obj5];


for i=1:numel(arrayOfObj)

arrayOfObj(i).someProperty=function;

end

当代码结束时,数组中的对象具有该属性集的值,但原始对象没有。我该怎么办?

非常感谢,抱歉我的英语不好=)

【问题讨论】:

【参考方案1】:

引用对象的类必须继承自句柄,如下所示:

classdef SampleClass < handle    
end

此类的对象将是引用类型。因此,如果您将对象放入数组并在那里修改它,那么实际的对象将被修改。

【讨论】:

以上是关于Matlab中如何通过引用传递?的主要内容,如果未能解决你的问题,请参考以下文章

通过引用 coder.ceval 在结构中传递数组

Matlab 变量在复制并传递到 mex 文件时显示“类似引用”的行为

在 PHP 5 中如何通过引用传递对象?

如何通过引用将文件传递给函数?

如何通过引用传递列表?

如何在C中“通过引用”传递数组? [复制]