我是Matlab编程的新手,我只是想尝试一个小的OOP场景,但它并没有像预期的那样工作。这是我的代码:
classdef testOOP
properties
age = 0;
subject = '';
end
methods
function ret = getSubject(this)
ret = this.subject;
end
function ret = getAge(this)
ret = this.age;
end
end
end
当我运行m文件并在命令提示符中试用这些函数时,我得到异常“输出参数太多”:
ans =
testOOP
>> x = testOOP
x =
testOOP
>> x.age = 4
x =
testOOP
>> x.age
ans =
4
>> x.getAge
ans =
4
>> x.getAge()
ans =
4
>> y = x.getAge()
??? Error using ==> getAge
Too many output arguments.
我想知道为什么会失败,即使它在我使用时有用
y = ans
答案 0 :(得分:3)
我刚刚找到了这个很好的教程:http://www.cs.ubc.ca/~murphyk/Software/matlabTutorial/html/objectOriented.html#2
它表示Matlab的OOP从版本2008b开始发生了变化。
我正在使用Matlab 2007b(应该提到它,抱歉......),语法是这样的:
>> a = testOOP
a =
testOOP
>> getAge(a)
ans =
0
>> y = getAge(a)
这终于有效了。
答案 1 :(得分:2)
我尝试了你的代码(现在包括最后一行),我没有收到任何错误。我脑海中只有一种解释:
尝试clear all
,删除所有实例,然后重试。