Размеры MATLAB логического массива

У меня проблема в MATLAB. У меня есть логический массив NxM с именем L, но если я сделаю dim(L), я получу:

Undefined function or method 'dim' for input arguments of type 'logical'

size тоже не работает. length работает, но дает мне только количество столбцов, а не строк. Странно то, что в рабочей области Matlab он правильно отображается как логический массив NxM.

Кто-нибудь знает, как я могу получить количество строк и столбцов логического массива?

Заранее спасибо.


person Stefan    schedule 14.06.2012    source источник


Ответы (1)


Если вам нужно как количество строк, так и столбцов, size — ваш лучший выбор:

[nRows,nCols] = size(L)

Если это не удается, сначала используйте clear size, так как в вашей рабочей области может случайно оказаться переменная с таким же именем.

person Jonas    schedule 14.06.2012
comment
О, теперь я чувствую себя глупо. Действительно, я определил переменную с именем size :S Большое спасибо за подсказку. Может мне пост удалить? А если серьезно, почему MATLAB позволяет мне определять переменную с именем встроенной функции. Хотя бы предупреждение было бы неплохо! - person Stefan; 14.06.2012
comment
@Stefan: Matlab дает вам много свободы, в том числе свободу выстрелить себе в ногу. Если вам неловко, вы можете, конечно, удалить свой пост, в противном случае, пожалуйста, примите мой ответ :) - person Jonas; 14.06.2012
comment
@Стефан, я не вижу причин удалять этот пост. Это может быть полезно для многих других людей. Я помню, как однажды определил скрипт try.m и попытался его запустить. Я думаю, что мне потребовалось 2 часа, чтобы понять, что не так. - person Andrey Rubshtein; 14.06.2012