作者kobenein (哈哈哈)
看板Fortran
标题Re: [心得] fortran 与 matlab 的简易心得
时间Sat Feb 28 15:01:17 2009
※ 引述《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)
1F:推 wenni:我的经验FORTRAN理论上不会比较慢的 应该是程式写的问题? 02/27 17:04
2F:→ Semisphere:我自己也是觉得Fortran比较快... 02/27 19:51
3F:推 charlesdc:Fortran绝对比较快 是写法的问题 函式库都是最佳化过的 02/27 20:54
4F:推 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
5F:→ YCTzeng:Matlab的clear是什麽功用呢? 我只懂Fortran... 03/01 00:56
6F:→ gilocustom:关键字:allocate 03/01 01:10
7F:→ charlesdc:不懂MATLAB的指令+1或许描述一下可以帮你解答 03/01 02:08
8F:→ pen5472:matlab的clear是清除已宣告的变数名称或函式 03/01 03:42