创建枚举值向量

Create a vector of enumeration values

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

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

我收到错误,

Error using vertcat Dimensions of arrays being concatenated are not consistent.

我也尝试过将其设为元胞数组并得到相同的错误消息。不可能有一个枚举向量吗?

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

更新

我的枚举

 classdef MyEnum
   enumeration
     None
     Default
     Hearts
     Diamonds
     Spades
     Clubs
   end    
 end

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 ]}

所以如果它对你的 class 不起作用,我可以想到几种解释:

  • 您的 class 或您继承自的某些 class 覆盖了一个连接函数,这使得无法执行此特定操作。
  • 枚举成员不对应于标量,或者不对应于一致大小的 objects/arrays(不过对于单元格来说应该不是问题)。