使Matlab类的属性成为给定集合中的一个元素[重复]
Posted
技术标签:
【中文标题】使Matlab类的属性成为给定集合中的一个元素[重复]【英文标题】:Make a property of the Matlab class to be an element from a given set [duplicate] 【发布时间】:2013-03-06 03:00:54 【问题描述】:我有一堂课(Matlab 2012a,Ubuntu 12.10)
classdef trajectory
properties
partName;
coordinates;
end
methods
end
end
如何将属性 partName 限制为仅是集合的元素之一 'leftHand','rightHand'(都是字符串)?
【问题讨论】:
【参考方案1】:您可以使用属性设置方法,例如。
classdef trajectory
properties
partName;
coordinates;
end
methods
function this=set.partName(this,myStr)
mySet='leftHand','rightHand' ;
if any(strcmp(mySet,myStr))
this.partName=myStr;
else
error('Value not part of set');
end
end
end
end
【讨论】:
您不需要将财产设为私有以保护它吗? @Shai 无需将 set 方法设为私有,以获取有关何时调用 set 方法的更多信息,MWhelp @Philliproso 您实际上不能将set
方法设为私有。它们只能在没有属性的methods
块中定义。虽然,正如您所说,没有必要将属性设为私有,但您可能希望给它一个默认值 leftHand
或 rightHand
。
谢谢你们!与枚举链接有帮助! Philliproso 的解决方案也不错。以上是关于使Matlab类的属性成为给定集合中的一个元素[重复]的主要内容,如果未能解决你的问题,请参考以下文章