Преобразуйте 2D — матрицу в 3D-матрицу в python, используя цикл for

#python #arrays #python-3.x #matrix

Вопрос:

Я новичок в python. Я хочу создать 3D-матрицу из функции. В 3D-матрице первые два значения взяты из 2D-матрицы (C), а в третьем значении мы возьмем количество нулей и единиц, используя np.нули(10). У меня есть C (2D матрица) следующим образом:

  C= [[1. 2.]
      [2. 3.] 
      [3. 4.]]
 

теперь я хочу преобразовать из 2D в три 3D матрицы, В первых двух строках и столбцах я хочу получить данные из 2D матрицы, например, 1-й столбец должен быть [1], а 2-й столбец должен быть [2]. в 3-м столбце у меня 1-й массив выглядит так

 D= [1 1 0 0 0 0 0 0 0 0]
 

Если мы заключим 3D-матрицу, она должна стать n*n*m, where n=c[1],n=c[2] and m=D.

Для того, чтобы сделать 3D-матрицу из вышеуказанных массивов. Я написал код следующим образом:

 def matrix(C):
        for i in range(len(C)):
             temp[i,:] = m[c[i,1],c[i,2],D]
        print(temp)
     
 

Эти линии выдают ошибку вне диапазона. Как это сделать?
Я ищу, чтобы сгенерировать такой массив: 1-й представляет строку, 2-й представляет столбец, а 3-й представляет значения, существующие между этой строкой и столбцом. Как этого добиться в Python?

  [[[1. 2. 1 1 0 0 0 0 0 0 0 0] [2. 3. 1 1 0 0 0 0 0 0 0 0] [3. 4. 1 1 0 0 0 0 0 0 0 0]]]

 | 1                 | 2                 | 3                 |4                  |
1|:------------------|1 1 0 0 0 0 0 0 0 0|:------------------|:------------------|
2|:------------------|:------------------|1 1 0 0 0 0 0 0 0 0|:------------------|
3|:------------------|:------------------|:------------------|1 1 0 0 0 0 0 0 0 0|
 

любая помощь была бы очень признательна.

Комментарии:

1. Удалил matlab тег, так как в этом вопросе нет упоминания о языке MATLAB