我对MATLAB课程的学习肯定与我以前的课程有所不同。以下是我使用的示例课程。
我用下面的行初始化我的课程,
myClass = ClassTest(3);
这很好。我遇到的问题是调用RunMain函数。
先致电
myClass.RunMain(myClass)
我收到错误消息too many inputs
。
第二次致电
myClass.RunMain(myClass, anything)
此通话有效。但是,我觉得很奇怪,我需要提供一个从未使用的第二个参数 - 只是看起来很乱。当然,我在这里遗漏了一些东西。
classdef ClassTest < handle
properties
myNum;
myDate = datenum(date);
end
methods
function ct = ClassTest(someNum)
ct.myNum = someNum;
end
% this function does not work when called
%function RunMain(obj)
% obj.myNum = obj.myNum * 2;
% disp(obj.myNum);
%end
% this works
function RunMain(obj, anything)
obj.myNum = obj.myNum * 2;
disp(obj.myNum);
end
end
更新
我可以看到,当我调试时,anything
参数与obj完全相同,即使obj.myNum
已更改了值。
答案 0 :(得分:2)
正确的语法,用于调用myClass是定义RunMain方法的类的对象的方法:
如果是function RunMain(obj)
,则是其中之一:
myClass.RunMain()
RunMain(myClass)
如果是function RunMain(obj, anything)
,则是其中之一:
myClass.RunMain(anything)
RunMain(myClass, anything)
您可以在此处找到有关语法的更多详细信息: http://de.mathworks.com/help/matlab/matlab_oop/ordinary-methods.html