為什麼 MATLAB 矩陣為縱向存儲,有什麼好處?
01-08
來,我來告訴你正解:因為在fortran盛行的年代,計算機的輸入是80列的紙片。。。。。而科學計算是fortran時代開始的,你知道,為了保持統一,所以是列的了。。。。
科學計算類的語言或庫,會傾向於使用列優先存儲,例如:
Fortran, MATLAB , Octave, Scilab, S-Plus,R語言[http://en.wikipedia.org/wiki/Row-major_order]。因為訪問連續內存空間的效率較訪問不連續的高,科學計算中涉及大量的矩陣和向量運算,而線性代數里向量都是指列向量,所以個人猜想這是列優先的原因之一。
學線代的時候,一般都會說矩陣是一些向量的集合。搞數學用數學的人,都默認向量是豎向的。資料庫里的數據是一行一行的,所以在應用學科、engineering,乃至應用統計里,用橫向量的也不少。matlab默認是第一類人用的。R就開始給出選擇了,比如ff包在定義大矩陣的時候就可以選是優先縱向還是橫向操作。
代數上一般定義一個向量用列
推薦閱讀:
※常見的MATLAB初學者問題中,哪些讓你非常無語或者覺得值得吐槽?
※關於機器學習的應用一般都用什麼語言和平台?具體到視頻分析用什麼軟體來分析?
※語音端點檢測matlab程序實現?
※matlab灰色預測模型GM(1,1)代碼。?
※MATLAB裡面有哪些加快程序運行速度的方法呢,求分享?
TAG:MATLAB |