Нужна помощь понять команду MatLab `Cat` в высоких размерах
-
25-09-2019 - |
Вопрос
Команды
a = magic(3);
b = pascal(3);
c = cat(4,a,b);
производить 3-х 3-1-1-1-2 массива.
Почему результат 3-3-1-2
когда размерность 4
?
Решение
Обе a
а также b
двухмерные матрицы размера 3-к-3. Когда вы объединяете их вдоль четвертого измерения, промежуточный третий размер - это синглтон (то есть 1). Так c(:,:,1,1)
Будет ваша матрица a
а также c(:,:,1,2)
Будет ваша матрица b
.
Вот Ссылка на некоторую документацию Это может помочь с пониманием многомерных массивов.
РЕДАКТИРОВАТЬ:
Возможно, это поможет подумать об этих четырех измерениях с точки зрения того, что люди США могут легче относиться к ...
Предположим, что четыре размера в примере представляют три размера в пространстве (x
, y
, а также z
) плюс четвертое время измерения. Представьте, что я отбираю отбор температуры в воздухе в ряде точек в пространстве в одно заданное время. Я могу образец температуры воздуха в сетке, которая содержит все комбинации трех x
позиции, три y
позиции и один z
позиция. Это даст мне 3-х 3-1 сетку. Обычно мы, вероятно, просто скажем, что данные находятся в 3-х 3 сетке, игнорируя следливую синглтон размерность.
Тем не менее, скажем, что теперь я беру другой набор образцов в этих точках позже. Поэтому я получаю другую 3-х 3-1 сетку во второй момент времени. Если я объединяю эти наборы данных вместе вдоль измерения времени, я получаю 3-х 3-1-1-2-2 матрицу. Третье измерение - Синглтон, потому что я только отбирал только в одном z
стоимость.
Итак, в примере c=cat(4,a,b)
, Мы объединяем два матрица вдоль четвертого измерения. Два матрицами являются 3-к-3, причем третье измерение неявно предположительно предполагалось синглтоном. Однако при объединении вдоль четвертого измерения мы оказываемся явно покажем, что третье измерение все еще там, перечисленное его размер как 1.