在构造函数

时间:2017-08-15 12:54:12

标签: matlab class code-structure

这可能是一个非常基本的问题,但我没有在互联网上找到任何东西。 我正在编写一个matlab类,它具有各种类属性。我正在设置所有这些(一些带有输入参数,一些默认值)。 我在另一个类方法中更改了一个类变量。 这不起作用(当超出函数范围时,变量将被删除)。 解决这个问题的最佳方法是什么? 把所有东西都放在构造函数中?

classdef MyClass
properties
    matrix1
    matrix2
    matrix3
end
methods
    function obj = MyClass()
    obj.matrix1 = zeros(2)
    obj.matrix2 = ones(3)
    end

    function obj = func(obj)
    obj.matrix2 = 3*ones(3)
    end
    function obj = func2(obj)
    obj.matrix3 = obj.matrix2 %this does not work. matrix2 has its original value, not 3*ones(3)
    end
end
end

我称之为

object = MyClass()
   object.func()
   object.func2()

1 个答案:

答案 0 :(得分:1)

MATLAB支持值类型和引用类型。

您定义类的方式,它本身就是一个值类型,这意味着每个函数调用都使用对象的副本,而不是引用调用对象的数据。

要使类表现为引用类型,然后根据需要修改对象的数据,从<?php $text= "hello%0A%0Ahow%20are%20you"; $txt = urldecode($text); echo nl2br($txt); 继承您的类。

执行:

handle