创建枚举值的向量

时间:2019-05-22 13:22:53

标签: matlab oop vector concatenation enumeration

我有一个枚举类。我想列出一些枚举,例如,

myEnumList = [MyEnum.Hearts; MyEnum.Diamonds];

我得到了错误,

  

使用vertcat时出错   要串联的数组的尺寸不一致。

我也曾尝试将其设置为单元格数组并获得相同的错误消息。不可能有枚举向量吗?

请明确一点,我知道您可以获得一个枚举类的所有成员的列表,但这不是我想要的。

更新

我的枚举

 classdef MyEnum
   enumeration
     None
     Default
     Hearts
     Diamonds
     Spades
     Clubs
   end    
 end

1 个答案:

答案 0 :(得分:1)

MATLAB's example为例进行枚举:

classdef WeekDays
   enumeration
      Monday, Tuesday, Wednesday, Thursday, Friday
   end
end

通常可以这样做:

>> [WeekDays.Tuesday; WeekDays.Monday]

ans = 

  2×1 WeekDays enumeration array

    Tuesday
    Monday 

>> {WeekDays.Tuesday; WeekDays.Monday}
ans =

  2×1 cell array

    {[Tuesday]}
    {[Monday ]}

因此,如果它不适用于您的班级,我可以想到几种解释:

  • 您的类或您从其继承的某些类会覆盖其中一个串联函数,这使得无法执行此特定操作。
  • 枚举成员不对应于标量,也不对应于大小一致的对象/数组(不过,单元格应该不成问题)。