У меня есть класс перечисления. Я хотел составить список некоторых перечислений, например,
myEnumList = [MyEnum.Hearts; MyEnum.Diamonds];
Я получаю ошибку,
Error using vertcat Dimensions of arrays being concatenated are not consistent.
Я также попытался сделать его массивом ячеек и получил то же сообщение об ошибке. Разве нельзя иметь вектор перечислений?
Просто чтобы быть ясным, я знаю, что вы можете получить список всех членов класса перечисления, но это не то, что мне нужно.
Обновлять
Мое перечисление
classdef MyEnum
enumeration
None
Default
Hearts
Diamonds
Spades
Clubs
end
end
Извиняюсь, это должно было быть MyEnum, а не myEnum, опечатка
Если перечисление определено так, как вы показали, приведенный выше код не приведет к ошибке. Другими словами - ваша ошибка не может быть воспроизведена (я использую R2019a).
Ах да, я просто скопировал это в свой матлаб, и он работает. Насколько я вижу, это то же самое, что и мой реальный код, странно
Итак... проблема решена?
да, спасибо, ваш ответ будет отмечен как правильный. Я просто удалил файл и скопировал новый, и это сработало... понятия не имею, почему это не сработало изначально.
Возьмем, к примеру, Пример MATLAB для перечислений:
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 ]}
Поэтому, если это не работает для вашего класса, я могу придумать несколько объяснений:
Спасибо за четкий ответ. Я только что обновил свой вопрос, чтобы показать свое перечисление. Я не думаю, что наследую какой-либо другой класс. Нужно ли давать членам скалярное число?
Итак, класс называется
MyEnum
, и вы используетеmyEnum
(разные заглавные буквы) в своем примере? Возможно, уmyEnum
какой-то неправильный размер?