将变量传递给MATLAB中的类

时间:2017-05-31 11:13:29

标签: matlab oop parameter-passing

这是我第一次在这里提问,我对MATLAB很新。所以,如果我的解释错误或不充分,我很抱歉。我很乐意听到任何改善自己的建议。

我想创建一个具有特定大小的数组的类。我们称这个班为“My​​Class'”。我的课程如下:

    classdef MyClass
       properties 
           A = array2table(zeros(ArraySize,1));
       end
    end

变量ArraySize在我的main.m文件中定义,我想在同一个文件中从这个类创建一个对象:

    ArraySize = 10;
    MyObject = MyClass; 

但是,我创建的类无法识别ArraySize变量。有人可以告诉我是否有一个简单的方法来实现这一目标? 到目前为止,我试图将它变成一个全局变量,我尝试使用' load'函数在文件之间传递参数。我尝试在函数中定义类。他们似乎都没有工作。我读到了关于'处理'在论坛中,我认为它可能与我的问题的解决方案有关,但我真的不知道如何使用它们。到目前为止我所理解的是句柄对应于C ++中的指针。我想知道他们是否可以用来解决我的问题,如果是的话,究竟是怎么回事。 提前谢谢。

1 个答案:

答案 0 :(得分:2)

您应该编写构造函数以接受ArraySize作为输入参数,然后在构造函数内初始化值A

classdef MyClass
   properties 
       A
   end

   methods 
       function self = MyClass(arraySize)
           self.A = array2table(zeros(arraySize,1));
       end
   end
end

然后实例化你的课程

myObject = MyClass(ArraySize);

关于handle课程,请查看this page of the documentation,了解何时使用handle和价值类的建议。