我正在将 matlab 代码转换为 C++ 代码,并试图在 Lapack、Blas 甚至 Atlas 中找到一个在 matlab 中的 Diag(k) 函数中执行相同工作的函数?有什么建议么 ?
问问题
1017 次
2 回答
0
GSL,Gnu 科学图书馆有一个功能gsl_matrix_diagonal (gsl_matrix * m)
。这会在矩阵中创建一个“向量视图”,它或多或少是一个别名为矩阵对角线的 gsl 向量。不知道你是否喜欢 GSL,但它也包括 BLAS 支持。我认为这是一个非常好的图书馆。
于 2012-04-13T03:08:24.670 回答
0
static void create_diagonal_matrix(T* matrix,T* v,int size)
{
for(int i=0;i<size;i++)
{
for(int32_t j=0;j<size;j++)
{
if(i==j)
matrix[j*size+i]=v[i];
else
matrix[j*size+i]=0;
}
}
}
于 2012-04-13T12:38:42.933 回答