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中如何通过引用传递?的主要内容,如果未能解决你的问题,请参考以下文章