【问题标题】:Matlab - Function taking no arguments but not static [duplicate]Matlab - 没有参数但不是静态的函数[重复]
【发布时间】:2014-07-04 14:33:56
【问题描述】:

我正在尝试实现以下内容:

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

【问题讨论】:

  • 如果需要属性,则将它们作为输入参数...

标签: matlab function static


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-14
    • 1970-01-01
    • 2015-07-23
    • 2013-08-01
    • 2021-06-15
    • 2020-12-15
    • 1970-01-01
    相关资源
    最近更新 更多