тип данных не понимается при присоединении некоторых матричных блоков друг к другу - PullRequest
0 голосов
/ 23 ноября 2018

Вот моя попытка построить большую матрицу из нескольких меньших:

import numpy as np

lambda1 = 1
lambda3 = 0.03

def create_Lambda_matrix(lambda1, lambda3):
    Lambda = np.zeros((6,7))
    temp3by3 = 2*np.matrix([[lambda1, lambda3, lambda3],[lambda3, lambda1, lambda3],[lambda3, lambda3, lambda1]])
    temp2by2 = 2*np.matrix([[lambda1, lambda3],[lambda3, lambda1]])
    Lambda = np.bmat([[temp3by3, np.zeros(3,4)]],
                       [np.zeros(2,3), temp2by2, np.zeros(2,2)],
                       [np.zeros(2,5), temp2by2]])
    return Lambda

Lambda = create_Lambda_matrix(lambda1, lambda3)
print(Lambda)

Но в строке, в которой собирается сгенерироваться Lambda, возвращается ошибка data type not understood.

Message=data type not understood
  Source=C:\Users\Matinking\source\repos\PyMy\PyMy\PyMy.py
  StackTrace:
  File "C:\Users\Matinking\source\repos\PyMy\PyMy\PyMy.py", line 41, in create_Lambda_matrix
    Lambda = np.bmat([[temp3by3, np.zeros(3,4)],
  File "C:\Users\Matinking\source\repos\PyMy\PyMy\PyMy.py", line 46, in <module>
    Lambda = create_Lambda_matrix(lambda1, lambda3)

Что я делаю не так?

1 Ответ

0 голосов
/ 23 ноября 2018

У вас есть синтаксическая ошибка при определении temp2by2.Вместо этого используйте:

temp2by2 = 2*np.matrix([[lambda1, lambda3],[lambda3, lambda1]]) 

Однако вы, скорее всего, получите ошибку при генерации матриц np.zeros.Вы должны указать размер матрицы, используя массивоподобный тип, как в Lambda = np.zeros((6,7))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...