【发布时间】:2018-02-12 19:50:44
【问题描述】:
C++ 中是否有创建像numpy.bmat 这样简单的块矩阵的功能?
例子:
Python:
m = np.bmat([[A, B], [C, D]])
C++ 我知道的唯一方法是使用boost::numeric::ublas::project:
#include <boost/numeric/ublas/matrix.hpp>
boost::numeric::ublas::matrix m;
//...
r1 = boost::numeric::ublas::range(i1, i2);
r2 = boost::numeric::ublas::range(i3, i4);
boost::numeric::ublas::project(m, r1, r2) = A;
// repeat code above for other submatrices, each time calculating the appropriate indices
【问题讨论】:
-
bmat可能有一个简单的语法,但代码本身并不是那么简单。单击文档的[source]链接。 -
它似乎基于串联。如果 C++ 中没有这样的函数,也许可以创建它......我会尝试考虑一个。