MATLAB:当我尝试访问对象的属性时出错
Posted
技术标签:
【中文标题】MATLAB:当我尝试访问对象的属性时出错【英文标题】:MATLAB: error when I try to access property of object 【发布时间】:2014-02-05 06:12:05 【问题描述】:这是它返回的错误: 你不能得到 Planet 的 't' 属性。
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】:在我看来,t
属性是私有的。您可以使用以下方式将其公开,例如:
properties(SetAccess = public, GetAccess = public)
t = 0;
end
或
properties(Access = public)
t = 0;
end
您也不需要将mercury
传递给 t getter 方法。 name=mercury.t;
应该够了。
【讨论】:
以上是关于MATLAB:当我尝试访问对象的属性时出错的主要内容,如果未能解决你的问题,请参考以下文章
尝试初始化嵌套数组时出错“赋值表达式的左侧可能不是可选的属性访问。”