Если вы заглянете внутрь ndims.m
, вы увидите
Put simply, it is LENGTH(SIZE(X)).
Теперь size
всегда возвращает вектор длины> = 2, даже для пустых массивов (т.е. size([])
- это [0 0]
).Почему это?Вероятно, выбор дизайна был сделан TMW давно.
Если вы хотите измерить «фактические размеры», вы можете использовать:
function nad = nActDims(in)
if numel(in) == 1
nad = 1;
else
nad = sum(size(in)>1);
end
или некоторую комбинацию функций isscalar
,isvector
, ismatrix
.