Matlab - 函数不带参数但不是静态的

时间:2014-07-04 14:33:57

标签: matlab function 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应该是静态的。但如果它是静态的,那么它就不能再访问这些属性了。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

在Matlab中,第一个函数参数是对象。

    function out = somefunction1(obj)
        ret = somefunction2(obj.values);
        out = mean(ret);
        return
    end

所有其他功能相同。这是一个隐式参数,您可以调用函数x.somefunction()