0

matlab コードを C++ コードに変換し、Matlab の Diag(k) 関数で同じ仕事をする Lapack、Blas、または Atlas の関数を見つけようとしていますか? 助言がありますか ?

4

2 に答える 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 に答える