Matlab是矩陣運算/線性代數最常用的庫。不過由於licence問題,一般更多用於做實驗什么的,另外,雖然Matlab可以方便的用C寫擴展,但是Matlab自己的函數卻很難被其他語言調用。
Octave是Matlab一個不錯的開源替代,不過Octave也有一些問題,1,Octave並沒有實現Matlab太多功能 2, Octave在做一些沒有向量化的矩陣計算時,非常非常慢(大致比Matlab慢200倍左右)
C科學計算最經典的庫是LAPACK/MKL/AKL 之類,不過用起來非常麻煩,有很多為這些庫的封裝,保留速度的同時,提升接口的友好性。這里(http://verdandi.gforge.inria.fr/doc/linear_algebra_libraries.pdf)是一些庫的比較。
Armadillo是其中一個比較高效同時也比較友好的C++科學計算庫(http://arma.sourceforge.net/)
這里(http://arma.sourceforge.net/armadillo_nicta_2010.pdf)有一些Armadillo和其他庫(包括Matlab,Octave)的比較, 看起來是很厲害的一個庫,從給的example來看,接口還是比較友好的,應該會是一個比較流行的庫。