cell2mat в Matlab работает, только если ваша ячейка имеет одинаковое количество столбцов во всех строках. Это так, потому что Matlab не может обрабатывать обычные массивы с переменным числом столбцов в строке, и это, как правило, в случае строковых матриц.
Тем не менее, манипуляции с ячейками почти равны манипуляциям с матрицами, единственное отличие заключается в методе индексации: матрицы используют квадратные скобки ([), а ячейки - фигурные скобки.
Я прогуглил код этой функции, которую вы используете, xticklabel_rotate, и нашел ссылку для обмена файлами на функцию здесь . Там в приведенном автором примере вместо матрицы используется ячейка.
Так что я предполагаю, что вы можете сбросить эту cell2mat
, потому что я считаю, что вам не нужно устанавливать Xticks с помощью функции set
, которую вы используете. xticklabel_rotate
должен сделать это.
Я думаю, вы должны попробовать это:
%First bar plotting!
bar(duration_vector);
d = size(duration_vector);
xticklabel_rotate([1:d],45,eventIDs,'interpreter','none');