Почему число измерений массива всегда больше или равно двум в Matlab? - PullRequest
0 голосов
/ 09 декабря 2018

Документация для ndims гласит, что

N = ndims (A) возвращает количество измерений в массиве A. Число измерений всегда больше или равно 2

Разве один массив измерений, т. Е. Вектор строки, не означает измерение 1?

1 Ответ

0 голосов
/ 09 декабря 2018

Если вы заглянете внутрь 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.

...