我正在处理C 中一些与矩阵有关的问题。我想解决问题:y = ax y,其中x和y是矩阵,a是常数。我考虑过使用daxpy blas例程,但是,根据文档是矢量的例程,我没有得到与在MATLAB中解决相同问题时相同的结果。
我目前正在运行此:
F77NAME(daxpy)(N, a, X, 1, Y, 1);
当您需要执行操作Y=a*X+Y
时,X',
Y'是1D或2D矩阵,因为操作已完成元素。
因此,如果您在单个指针double A[] = new[] (M*N);
中分配了矩阵,则可以通过将向量的尺寸定义为M*N
daxpy
int MN = M*N;
int one = 1;
F77NAME(daxpy)(&MN, &a, &X, &one, &Y, &one);
与堆栈二维矩阵double A[3][2];
一起使用,因为此内存是按顺序分配的。
否则,您需要使用for
循环并分别添加每行。