oop - Matlab Class Method: Too many arguments -
i found related questions, didn't find answer in there.
i'm writing simple little matlab class in order learn oop syntax in matlab. i'm familiar python, , pulling hair out trying work matlab. here's definition:
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 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
this not done, i'm using little script mess object:
foo = car([1,1],[0,2]) foo.start foo.accelerate(2,3)
instantiation works, method call throws error. foo.start, example:
error using car/start many input arguments.
what missing??
since can't figure out how delete question, i'll best answer it. other languages, object oriented programing in matlab wants see obj
first parameter in class methods (like self
in python). reference object necessary modify attributes. not including in method definitions, when called method getting "too many arguments" error. that's because if foo.method(a,b)
, object foo
passed parameter, function getting 3 inputs, i.e. method(foo,a,b)
.
i went through code , added obj
in appropriate places, failed use clear
command in matlab command window. since i'm new matlab, unaware of importance. assumed saving file , re-instantiating class sufficient. not.
i hope helps comes across question.
Comments
Post a Comment