为什么Matlab中的内置函数比你自己编写的函数快得多?
答案 0 :(得分:9)
是的,matlab
通常使用以低级语言(通常为Fortran
)编写的线性代数库例程的包装函数,例如BLAS
,ATLAS
或{{ 1}}。
您可以在here
中详细了解相关信息如果你很好奇功能包装成本(基本上没有),你还会看到this question。结果适用于LAPACK
,C++
和python
,但我相信它们也适用于matlab。
答案 1 :(得分:1)
简而言之,因为它们将使用本机代码(C / C ++)编写,因此允许开发人员访问数据的汇编程序优化,并且还能够使用SSE和类似的方法来尝试并并行化内部的操作。 CPU。
答案 2 :(得分:1)
是的,很可能这些矩阵函数是用C,C ++甚至汇编编写的。 C和C ++代码甚至可以利用SIMD(单指令多数据)进程,如SSE(来自intel)。