使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 块中定义。虽然,正如您所说,没有必要将属性设为私有,但您可能希望给它一个默认值 leftHandrightHand 谢谢你们!与枚举链接有帮助! Philliproso 的解决方案也不错。

以上是关于使Matlab类的属性成为给定集合中的一个元素[重复]的主要内容,如果未能解决你的问题,请参考以下文章

在Matlab中生成包含给定集合中至少一个元素的所有组合

使给定行号的所有元素等于 NaN

集合与简易逻辑

利用java反射将结果集封装成为对象和对象集合

nyoj 95-众数问题 (map)

重绘和重排