Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab:如何调用我在类中定义的函数?_Matlab_Oop - Fatal编程技术网

Matlab:如何调用我在类中定义的函数?

Matlab:如何调用我在类中定义的函数?,matlab,oop,Matlab,Oop,我正在尝试学习如何使用Matlab中的类,以前从未在任何语言中使用过它们,如果这是一个有点基本的问题,我深表歉意 我定义了一个名为car的类,它具有颜色、类型、序列号和速度等属性,并具有更改速度的功能 classdef car <handle properties colour type speed end properties (SetAccess = private) SerialNumber end me

我正在尝试学习如何使用Matlab中的类,以前从未在任何语言中使用过它们,如果这是一个有点基本的问题,我深表歉意

我定义了一个名为
car
的类,它具有颜色、类型、序列号和速度等属性,并具有更改速度的功能

classdef car <handle
   properties
      colour
      type
      speed
   end 
   properties (SetAccess = private)
      SerialNumber
   end
   methods
       function faster(obj, v)
           obj.speed = obj.speed + v;
       end
   end
end
我使用与本问题相同的代码结构构建了类和方法:


那里的用户似乎没有我做的问题。我不确定哪里出了问题——我的函数似乎应该可以工作。有人能告诉我正确的方向吗?

您需要调用类上的函数

myCar = car();
myCar.faster( 10 ); % equivalent to 'faster( myCar, 10 )'
如果没有指定
类型,还需要将其分配回类,即

myCar = myCar.faster( 10 );

但是你不需要在
句柄
类中使用它。

请不要从不确定来源的随机示例中学习编程,也不要通过提问等方式学习编程。相反,买本书,或者阅读MATLAB提供的精彩文档:
myCar。更快(10)
faster(myCar,10)
相同,但我认为后者更自然,尤其是在处理非句柄类时。@Cris
faster(myCar,10)
在开始重载函数时也更自然,使语法保持不变。虽然我认为点表示法使它乍一看更加明确,
faster
函数(在本例中)是在该类(或包)中实现的。我同意这一点。
myCar = myCar.faster( 10 );