Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 25, 2011 00:08:21

math.beginer
От:
Зарегистрирован: 2011-03-28
Сообщения: 40
Репутация: +  0  -
Профиль   Отправить e-mail  

блочная матрица

Можно ли конструировать блочные матрицы из имеющихся блоков-матриц без поэлементных действий. Например, в самом простом случае, в матричных языках для матрицы из четырех блоков это выглядит так:

A11=[1 2; 3 4];
A22=[1 2 3 ; 4 5 6];
A=[A11 zeros(size(A22)) ; zeros(size(A11)) A22]
A =

1 2 0 0 0
3 4 0 0 0
0 0 1 2 3
0 0 4 5 6



Офлайн

#2 Апрель 25, 2011 07:26:31

comm
От:
Зарегистрирован: 2010-02-26
Сообщения: 23
Репутация: +  1  -
Профиль   Отправить e-mail  

блочная матрица

Например так:

from numpy import array, zeros_like, c_, r_
A11 = array([[1, 2], [3, 4]])
A22 = array([[1, 2, 3], [4, 5, 6]])
A = r_[c_[A11, zeros_like(A22)], c_[zeros_like(A11), A22]]



Офлайн

#3 Апрель 25, 2011 07:51:14

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

блочная матрица

В numpy есть еще bmat

A=bmat([[A11,Z1],[Z2,A22]])
Z1,Z2 нулевые



Офлайн

#4 Апрель 25, 2011 09:49:56

math.beginer
От:
Зарегистрирован: 2011-03-28
Сообщения: 40
Репутация: +  0  -
Профиль   Отправить e-mail  

блочная матрица

Спасибо!

Планируется работа с большими матрицами. Матрицы-блоки A11,A12 … можно выгрузить из памяти после формирования A?



Офлайн

#5 Апрель 25, 2011 10:27:24

comm
От:
Зарегистрирован: 2010-02-26
Сообщения: 23
Репутация: +  1  -
Профиль   Отправить e-mail  

блочная матрица

doza_and
Код:
A=bmat([,])
Только не забывайте, что в результате получите объект matrix
math.beginer
Можно)



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version