Matlab函数sum(A,2)
背后的对应LAPACK函数是什么,其中A
是矩阵?
答案 0 :(得分:2)
我刚看了LAPACK documentation。我也看过this post on Computational Science beta。事实证明,没有本机LAPACK函数可以计算给定维度中矩阵的总和。因此,MATLAB可能会编写一些自定义内容,以便以这种方式促进矩阵的给定维度的总和。
有几种方法可以解决这个问题:
sum(A,2)
,这意味着您要对每一行的所有列求和。您可以通过执行y = A*x
来封装此行为,其中A
是有问题的矩阵,x
是所有1的向量。 y
将是输出,您将在矩阵的每一行的所有列中检索总和。因此,您可以使用sgemv
并仔细选择正确的输入,以便向量x
由所有1组成,矩阵A
是所讨论的矩阵。您需要将beta
常量设置为0,并将y
向量提供为全零。您还需要将alpha
设置为1。sdsdot
之类的东西就可以了。但是,如果您的代码没有花太多时间做总和,那么您可以选择选项#1。如果您反复进行sum(A,2)
计算,那么最好编写自己的循环(即选项#2或#3)。