【发布时间】:2013-05-03 00:50:26
【问题描述】:
我找到了一些相关的问题,但并没有真正找到答案。
我正在编写一个简单的 MATLAB 小类,以便在 MATLAB 中学习 OOP 语法。我对 Python 非常熟悉,并且在尝试使用 MATLAB 时竭尽全力。这是定义:
classdef Car < handle
properties
speed = [0,0] %x,y velocity
position = [0,0]
running = false
end
methods
function obj = Car(pos, spd)
obj.position = pos;
obj.speed = spd;
end
function accelerate(obj,x,y) % Add to speed
obj.speed = obj.speed + [x,y]
end
function position = getPosition(obj)
position = obj.position
end
function start(obj)
obj.running = true
end
function stop(obj)
obj.running = false
end
end
end
这肯定是没有完成,但后来我用一个小脚本来搞乱对象:
foo = Car([1,1],[0,2])
foo.start
foo.accelerate(2,3)
实例化有效,但我调用的任何方法都会引发错误。 foo.start,例如:
Error using Car/start
Too many input arguments.
我错过了什么??
【问题讨论】:
-
我应该澄清的是,对于我尝试在对象上调用的任何方法,它总是相同的“输入参数过多”错误。
-
什么版本的 MATLAB?您的代码在 R2011b 上适用于我。
-
sh*t... 我刚刚使用了 clear 命令,现在它正在工作。我应该删除这个问题吗?
标签: matlab oop class methods arguments