我正在尝试使用一个成员变量来创建一个MATLAB类,该变量由于方法调用而被更新,但是当我尝试更改类中的属性时(显然,从我从MATLAB的内存管理中理解的)创建一个副本对象然后修改它,保持原始对象的属性不变.
classdef testprop
properties
numRequests=0;
end
methods
function Request(this, val)
disp(val);
this.numRequests=this.numRequests+1;
end
end
end
Run Code Online (Sandbox Code Playgroud)
.
>> a=testprop;
>> a.Request(9);
>> a.Request(5);
>> a.numRequests
ans = 0
Run Code Online (Sandbox Code Playgroud) 可能重复:
如何修改Matlab对象的属性
我正在尝试将我的C#代码转换为Matlab,在Matlab中我决定使用OOP(我没有和Matlab一起使用)能够处理我的C#代码的复杂性.
看一下教程,我想出了以下代码:
classdef Cat
properties
meowCount = 0;
end
methods
function Meow(C)
disp('meowww');
C.meowCount = C.meowCount + 1;
end
end
end
Run Code Online (Sandbox Code Playgroud)
结果:
>> c = Cat();
>> c.Meow();
meowww
>> c
c =
Cat
Properties:
meowCount: 0
Methods
Run Code Online (Sandbox Code Playgroud)
所以,meowCount不要改变.问题是什么?