CVXPY で (対角) ブロック行列 (できればスパース) を生成したいと考えています。
一部のブロックは、eye(m)
または何でもかまいませんが、次のブロックがあります。
from cvxopt import *
import cvxpy as cvx
import numpy as np
import scipy
W = cvx.Variable(m,1)
W_diag = cvx.diag(W)
W_diag
次に、たとえば次のようにして、ブロック対角行列をブロックとして形成しようとしました。
T = scipy.sparse.block_diag((scipy.sparse.eye(m1).todense(), cvx.diag(W))
次のエラーが発生しました。
TypeError: タイプの変換がサポートされていません: (dtype('float64'), dtype('O'))
私に何ができる?他の方法?T
後で CVXPY の制約でマトリックスを使用したいと考えています。