如图所示,如果之间在主函数中调用这个方法(xiugai()),此时加入断点进行查看。可以发现,在逐行运行时,当代码运行到test对象的xiugai方法的时候,this的值确实由“10”变为“11”,但是当代码返回到主函数的时候,a的值却没有变化。这是因为,在test对象的代码中,this和主函数中的a是分别不同的两个东西(虽然我们将其视为一个,但是MATLAB就不),this的值无法传递给a。
所以MATLAB编译器会提示“用于修改对象的值类方法必须返回所修改的对象。”。
可以让这个test类继承“handle”,此时可以实现对象数值的返回。(当提示无法继承的时候(运行时会报错),此时,只需要在classdef后面添加“(HandleCompatible) ”即可)
(在MATLAB R2015b及以后的版本中,推荐的做法是在类定义中使用 classdef (HandleCompatible) 注释来指定整个类与 handle 语义兼容,而不是在每个属性上使用 properties (HandleCompatible)。这是因为 HandleCompatible 属性现在被视为整个类的属性,而不仅仅是属性的属性。)
问题得到解决