Создайте 3D матрицу

Как я могу определить 3D матрицу в MATLAB?

Например, матрица размера (8 x 4 x 20) или добавляет 3-й размер к существующей 2D матрице?

35
задан Fermi paradox 3 January 2018 в 20:43
поделиться

3 ответа

Создать 3D матрицу

A = zeros(20, 10, 3);   %# Creates a 20x10x3 matrix

Добавить 3-е измерение к матрице

B = zeros(4,4);  
C = zeros(size(B,1), size(B,2), 4);  %# New matrix with B's size, and 3rd dimension of size 4
C(:,:,1) = B;                        %# Copy the content of B into C's first set of values

нули - это только один из способов создания новой матрицы. Другим может быть A(1:20,1:10,1:3) = 0 для 3D матрицы. Для подтверждения размера ваших матриц вы можете выполнить: size(A), что дает 20 10 3.

Не существует явного ограничения на количество размерностей матрицы.

46
ответ дан 27 November 2019 в 07:06
поделиться

Если вы хотите определить трехмерную матрицу, содержащую все нули, вы пишете

A = zeros(8,4,20);

Все единицы используют единицы , все NaN используют NaN , все ложные используют false вместо нулей .

Если у вас есть существующая 2D-матрица, вы можете назначить элемент в «3-м измерении», и матрица будет расширена, чтобы содержать новый элемент. Все остальные новые элементы матрицы, которые необходимо добавить, обнуляются.

Например

B = magic(3); %# creates a 3x3 magic square
B(2,1,2) = 1; %# and you have a 3x3x2 array
10
ответ дан 27 November 2019 в 07:06
поделиться

Я использую Octave, но в Matlab такой же синтаксис.

Создаем 3d матрицу:

octave:3> m = ones(2,3,2)
m =

ans(:,:,1) =

   1   1   1
   1   1   1

ans(:,:,2) =

   1   1   1
   1   1   1

Теперь, допустим, у меня есть 2D матрица, которую я хочу расширить в новом измерении:

octave:4> Two_D = ones(2,3)
Two_D =
   1   1   1
   1   1   1

Я могу расширить ее, создав 3D матрицу, установив первую 2D в ней в мое старое измерение (здесь у меня второй размер третьего измерения):

octave:11> Three_D = zeros(2,3,2)
Three_D =

ans(:,:,1) =

   0   0   0
   0   0   0

ans(:,:,2) =

   0   0   0
   0   0   0



octave:12> Three_D(:,:,1) = Two_D
Three_D =

ans(:,:,1) =

   1   1   1
   1   1   1

ans(:,:,2) =

   0   0   0
   0   0   0
6
ответ дан 27 November 2019 в 07:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: