2017-03-13 1 views
0

私は、C++のいくつかの行列関連問題に取り組んでいます。私は問題を解決したい:Y = aX + Y、ここでXとYは行列であり、aは定数である。私はdaxpy BLASルーチンを使用することを考えましたが、DAXPYはドキュメントに従ってベクトルルーチンです。私はmatlabで同じ問題を解決したときと同じ結果を得ていません。行列付きBlas daxpyルーチン

私は現在、この実行している:あなたが操作Y=a*X+Yを実行する必要がある場合には操作が要素単位で行われているのでX', Y`は、1Dまたは2D行列であれば、それは問題ではありません

F77NAME(daxpy)(N, a, X, 1, Y, 1); 

答えて

0

を。

あなたは、単一のポインタdouble A[] = new[] (M*N);に行列を割り当てた場合は、このメモリが割り当てられているようM*N

int MN = M*N; 
int one = 1; 
F77NAME(daxpy)(&MN, &a, &X, &one, &Y, &one); 

同じスタック2次元マトリクスdouble A[3][2];に行くように、あなたはベクトルの次元を定義することでdaxpyを使用することができます順番通りに。

それ以外の場合は、forループを使用して、各行を別々に追加する必要があります。

関連する問題