matlab コードを C++ コードに変換し、Matlab の Diag(k) 関数で同じ仕事をする Lapack、Blas、または Atlas の関数を見つけようとしていますか? 助言がありますか ?
質問する
1017 次
2 に答える
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 に答える
0
GSL、Gnu Scientific Libraryには機能がありますgsl_matrix_diagonal (gsl_matrix * m)
。これにより、多かれ少なかれ行列の対角線にエイリアスされた gsl ベクトルである行列への「ベクトル ビュー」が作成されます。GSL を愛しているかどうかはわかりませんが、BLAS サポートも含まれています。とても良い図書館だと思います。
于 2012-04-13T03:08:24.670 に答える