Matlab乘法

时间:2012-10-10 23:05:01

标签: matlab matrix

如果矩阵A在X中,矩阵B在Y中。

进行多重化只是Z = X * Y.正确假设两个阵列的大小相同。

如何使用for循环计算它呢?

3 个答案:

答案 0 :(得分:3)

ja72的anwser是错误的,看看我的评论,看看为什么。一般来说,在这些简单的线性代数运算中,你的代码不可能超过矢量化版本,即使你用C / mex编写代码也是如此(除非你的代码中有一些可以在代码中使用的稀疏结构) )。原因在于,Matlab将矩阵乘法的实际工作传递给用Fortran编写的Lapack库,然后调用在特定机器架构下优化的Blas库。

答案 1 :(得分:3)

是acai是正确的,我记得当我开始使用Matlab时想知道同样的事情。只是为了提供更多细节来解释acai所说的,LAPACK是线性代数PACKage,是许多其他语言用来解决这些类型问题的东西,Python使用SciPy,Java jlapack等连接它.BLAS是Basic Linear Algebra子程序,它处理你要问的矩阵乘法的基本问题。 Acai也是对的,你永远不会击败Matlab为矩阵乘法提供的性能,这是他们的面包和黄油,他们已经花了几十年,优化了这些操作的性能。

答案 2 :(得分:1)

是矩阵乘法是A*B,逐个元素是A*.B。如果A是(NxM)而B是(MxK)大小,则C=A*B的代码是

<强>更新

for i=1:N
  for j=1:K
    C(i,j) = A(i,:)*B(:,j)
  end
end