Нужна помощь понять команду MatLab `Cat` в высоких размерах

StackOverflow https://stackoverflow.com/questions/2609495

Вопрос

Команды

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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top