精華區beta Fortran 關於我們 聯絡資訊
※ 引述《kobenein (哈哈哈)》之銘言: 本來用fortran寫了一個超音波的成像程式 在第一個csae要跑約16分鐘 但是第二個case很複雜 程式也要改寫 但是可能矩陣開太多 遇到一些記憶體的問題 導致我程式寫不出來 (大概是沒有用類似matlab裡面clear的動作吧) 於是心一橫 把fortran的程式改成沒學過的matlab來寫 結果第一個csae從本來要跑16分鐘 (跑完還要用surfer做圖才看的到結果) 變成只要兩分半! 對迴圈向量化還不熟 不然我想還可以更快一點 第二個case的問題也解決了了! ======比較====== fortran優點:程式碼看起來架構漂亮、變數宣告嚴謹(implicit none) 矩陣可以開負數,例如: real::x(-6,6) matlab優點:函式庫有夠大的! 矩陣運算快!可以直接產生圖檔 缺點:不能開索引值是負的或0的矩陣 -- -好管弦事- A place about cello and music.... http://fnt72.blogspot.com/ ※ 編輯: kobenein 來自: 140.123.67.47 (02/27 15:16)
wenni:我的經驗FORTRAN理論上不會比較慢的 應該是程式寫的問題? 02/27 17:04
Semisphere:我自己也是覺得Fortran比較快... 02/27 19:51
charlesdc:Fortran絕對比較快 是寫法的問題 函式庫都是最佳化過的 02/27 20:54
agody:Fortran在計算array時,有先後處理的差別,f(i,j)要先跑i再跑j 02/28 01:22
沒錯 我從fortran轉matlab時 有改過一點點算法 但是matlab遇到瓶頸後我又回來試試fortran 把轉到matlab時改的算法也套用到fortran 的確超快的 16分鐘 稍微改一點 2.5分鐘 不到一分鐘 算法 fortran ───────→ matlab ───────→ fortran 因此有點想回歸fortran 問一下fortran有沒有 跟matlab裡面clear一樣的指令? 謝謝! -- -好管弦事- A place about cello and music.... http://fnt72.blogspot.com/ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.123.67.47
YCTzeng:Matlab的clear是什麼功用呢? 我只懂Fortran... 03/01 00:56
gilocustom:關鍵字:allocate 03/01 01:10
charlesdc:不懂MATLAB的指令+1或許描述一下可以幫你解答 03/01 02:08
pen5472:matlab的clear是清除已宣告的變數名稱或函式 03/01 03:42