【发布时间】:2014-07-04 15:35:59
【问题描述】:
由于我似乎无法编辑我的旧问题 (Matlab - Function taking no arguments but not static),所以又来了:
我正在尝试实现以下内容:
classdef asset
properties
name
values
end
methods
function AS = asset(name, values)
AS.name = name;
AS.values = values;
end
function out = somefunction1
ret = somefunction2(asset.values);
out = mean(ret);
return
end
function rets = somefunction2(vals)
n = length(vals);
rets = zeros(1,n-1);
for i=1:(n-1)
rets(i) = vals(i)/vals(i+1);
end
return
end
end
end
但是我得到了 somefunction1 应该是静态的错误。但是如果它是静态的,那么它就不能再访问这些属性了。我该如何解决这个问题?
基本上我希望能够写出这样的东西:
AS = asset('testname',[1 2 3 4 5]);
output = AS.somefunction1();
相对于写作
AS = asset('testname',[1 2 3 4 5]);
output = AS.somefunction1(AS);
【问题讨论】: