Массив MATLAB имеет бесконечное число конечных одноэлементных измерений (теоретически).
Таким образом, массив 1x10
на самом деле является массивом 1x10x1x1x1...
. Я полагаю, что MATLAB просто скрывает конечное одноэлементное измерение.
Вы можете наблюдать это поведение с помощью следующего фрагмента кода:
permute([1:10],[2,1,4,3])
MATLAB имеет дело с перестановкой 3-го и 4-го измерения без каких-либо проблем, даже если это одномерный массив.
Но почему MATLAB не скрывает конечное одноэлементное измерение во 2-м измерении?
size(rand(10,1))
дает:
ans =
10 1
size(rand(10,1,1))
также дает:
ans =
10 1
Это потому, что MATLAB оптимизирован для линейной алгебры? Итак, это просто соглашение?