Довольно интересное поведение я встретил в известном математическом пакете MATLAB 7.9.0. Налаживая работу на конференцию по обработке изображений, как обычно комментировал излишние строки кода для быстрой проверки работоспособности.

Предположим имеем массив ячеек, где содержатся изображения, следующего вида:

lena    = { rgb2gray(imread('lena.bmp'))    ...
            rgb2gray(imread('lena.30.bmp')) ...
            rgb2gray(imread('lena.45.bmp')) ...
            rgb2gray(imread('lena.60.bmp')) ...
            rgb2gray(imread('lena.75.bmp')) ...
            rgb2gray(imread('lena.90.bmp')) ...
            rgb2gray(imread('lena.105.bmp')) };

Все хорошо, все замечательно в итоге имеем <1x7 cell> объект в Workspace. Далее по коду следуют тяжелый приемы отработки и на таком количестве изображений просто не хочется пробовать. Поступаем как обычно, комментируем ненужные строки. Так я и сделал:

lena    = { rgb2gray(imread('lena.bmp'))    ...
%           rgb2gray(imread('lena.30.bmp')) ...
%           rgb2gray(imread('lena.45.bmp')) ...
%           rgb2gray(imread('lena.60.bmp')) ...
%           rgb2gray(imread('lena.75.bmp')) ...
%           rgb2gray(imread('lena.90.bmp')) ...
            rgb2gray(imread('lena.105.bmp')) };

Код отрабатывает, все вроде замечательно. Но вот интересный момент подмечаю в Workspace. Оказывается теперь объект lena это <2x1 cell>. Интересная трактовка. Нужно разобраться. Хочу три картинки:

lena    = { rgb2gray(imread('lena.bmp'))    ...
%           rgb2gray(imread('lena.30.bmp')) ...
%           rgb2gray(imread('lena.45.bmp')) ...
%           rgb2gray(imread('lena.60.bmp')) ...
%           rgb2gray(imread('lena.75.bmp')) ...
            rgb2gray(imread('lena.90.bmp')) ...
            rgb2gray(imread('lena.105.bmp')) };

И все. Кирдык:

??? Error using ==> vertcat
CAT arguments dimensions are not consistent.

Error in ==> main at 1
    lena    = { rgb2gray(imread('lena.bmp'))    ...

Если поэкспериментируешь, аналогично меняя комментированные строки пустыми строками, ты очевидно добьешься такого же эффекта.

MATLAB не хочет комментировать символы перевода строки. Очень неприятный момент. Очередной камень в сторону используемого языка программирования. Хотелось бы, чтобы комментарии от начала строки распространялись все-таки на всю строку. Надеюсь такие мелочи будут меняться и разработчики будут подымать хороший продукт на качественно новый уровень.