【问题标题】:How to pass by reference in Matlab?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

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

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

【问题讨论】:

    标签: matlab object pass-by-reference


    【解决方案1】:

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

    classdef SampleClass < handle    
    end
    

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

    【讨论】:

      猜你喜欢
      • 2015-07-06
      • 2018-06-26
      • 1970-01-01
      • 2020-01-01
      • 1970-01-01
      • 2016-02-29
      • 1970-01-01
      • 2017-01-05
      • 2013-05-02
      相关资源
      最近更新 更多