迷惑了好几天的Matlab中的setter的用法(不过好像在Matlab里面并没有setter这一说),感觉明明可以直接对对象的属性进行赋值,这个set函数的用法到底怎么调用,看Matlab oop的文档看了半天,这边一块那边一块的看得头大,终于看到别人特意举例子讲的set和get的用法才恍然大悟,放一下别人文章的链接https://blog.csdn.net/qq_43157190/article/details/104102169。
其实,Matlab中默认会生成set函数,从而允许你在直接对对象的属性进行赋值时不会出错,所以像我之前写的如下的set函数根本就是多此一举。
%函数定义
function obj = set.x(obj,val)
obj.x = val;
end
%函数调用
a = ClassName;
a.x = 10
%输出结果
>> 10
如若真的想重新定义set函数,比如为所赋的值默认加上10,像下面代码所示。
%函数定义
function obj = set.Power(obj,val)
obj.Power = val+10;
end
%函数调用
a = ClassName;
a.x = 10
%输出结果
>> 20
所以说正常情况下赋值根本不需要自己再重新改写set代码,不需要写太多冗余的定义,这也符合Matlab较为简化的代码风格。