MATLAB:当我尝试访问对象的属性时出错

时间:2014-02-05 06:12:05

标签: matlab matlab-class

这是它返回的错误: 你不能得到这样的' Planet的财产。

Problem4dot10中的错误(第12行) 名称= mercury.t(水银);

我创建了getter函数来返回类星球的属性:

methods %for getter functions
        function t=get.t(obj)
            t=obj.t;
        end
        function r=get.r(obj)
            r=obj.r;
        end
        function x=get.x(obj)
            x=obj.x;
        end
        function y=get.y(obj)
            y=obj.y;
        end
        function vx=get.vx(obj)
            vx=obj.vx;
        end
        function vy=get.vy(obj)
            vy=obj.vy;
        end
        function n=get.n(obj)
            n=obj.n;
        end
        function n=get.Name(obj)
            n=obj.Name;
        end
    end

我从文件Problem4dot10.m中调用了getter:

mercury=Planet(1,0.002,0,2*pi,1,0,'Mercury');
mercury.sett(60);
name=mercury.t(mercury);

我查看了文档,试图找出答案。我想要做的是创建一个行星类来跟踪行星的位置,并计算行星在下一个时间步的位置。然后它假设新状态。

1 个答案:

答案 0 :(得分:0)

在我看来,t属性是私有的。您可以使用,例如:

将其公开
properties(SetAccess = public, GetAccess = public)
    t = 0;
end

properties(Access = public)
    t = 0;
end

此外,您无需将mercury传递给t getter方法。 name=mercury.t;就足够了。