2016-05-27 35 views
0

私は行列S(n x m)とベクトルSigma(n)を持っていますが、各行S(i)にSigma(i)を乗算したいと思います。インテルMKLと行の乗算

私は3つの事を考えています - >各行を掛ける - が...>正方対角行列にシグマを変換し、S =シグマ* Sを計算するが、機能だけで一般的または三角行列のために存在しているようですスカラーSigma [i]によってDSCALを使って、ループ - > mkl_ddiammでループしていますが、それは私にはあまりあいまいです。

これを実装する方法についてのアドバイスはありますか?ありがとうございました !

+0

質問は[この質問](http://stackoverflow.com/questions/29472362/how-to-perform-vector-matrix-multiplication-with-blas)と似ています。 –

+0

こんにちは、 私はまだ出力としてS行列を持っていたいので、SとSigmaを掛けることはできませんか、間違っていますか? より正式には、Sを固有値Sigma [0 ... n-1]の対角行列で乗算したいと思います。 – user3821901

答えて

2

MKL/BLASが機能を提供しないのは非常に簡単な操作です。 forループを使って自分で実装することができます。

for(int i=0; i<nrow; ++i) { 
    for(int j=0; j<ncols; ++j) { 
    s[i][j] += sigma[i]; 
    } 
}