Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
为什么 Matlab 中的内置函数比您自己编写的函数快得多?
是的,matlab类似的人通常将包装函数用于以低级语言(通常Fortran)编写的线性代数库例程,例如BLAS,ATLAS或LAPACK.
matlab
Fortran
BLAS
ATLAS
LAPACK
您可以在此处阅读有关此内容的更多信息
如果您好奇函数包装成本有多少开销(基本上没有),也可以看看这个问题。结果适用于C++,python但numpy我相信它们也适用于 matlab。
C++
python
numpy
简而言之,因为它们将用本机代码 (C/C++) 编写,因此允许开发人员访问对数据的汇编程序优化,以及使用 SSE 和类似的能力来尝试和并行化 CPU 内的操作。
是的,这些矩阵函数很可能是用 C、C++ 甚至汇编编写的。C 和 C++ 代码甚至可以利用 SIMD(单指令多数据)过程,如 SSE(来自英特尔)。