24小时热门版块排行榜    

查看: 675  |  回复: 4

david007bit

新虫 (初入文坛)

[求助] 关于matlab和fortran转换的小问题 已有1人参与

最近在做fortran转matlab程序,遇到一个疑问:

原fortran程序段为
WBB=0.4*(12500-H0)/9000+1.0
H0=6000
得到的WBB值为1.555556

但是若写成
H0=6000
WBB=0.4*(12500-H0)/9000+1.0
的形式,得到WBB=1.28888888

转成matlab之后,若写成
WBB=0.4*(12500-H0)/9000+1.0;
H0=6000;
得到WBB=1.288888888

变换顺序为
H0=6000;
WBB=0.4*(12500-H0)/9000+1.0;
后,依然为WBB=1.2888888888

所以fortran的计算结果是不是与顺序有关?
像源程序WBB=0.4*(12500-H0)/9000+1.0
H0=6000  先计算第一行,再计算第二行,在没有H0值的情况下,是怎么得到WBB=1.55556的呢?

多谢。
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

我并不懂Fortran,不过我猜想,如果不预先与H0进行赋值,就计算
WBB=0.4*(12500-H0)/9000+1.0
得到WBB=1.55556
是因为把没有赋值的H0按照H0=0处理了。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
2楼2016-06-27 22:10:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zbouyang

禁虫 (职业作家)

感谢参与,应助指数 +1
本帖内容被屏蔽

3楼2016-06-27 22:42:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

david007bit

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by 月只蓝 at 2016-06-27 22:10:03
我并不懂Fortran,不过我猜想,如果不预先与H0进行赋值,就计算
WBB=0.4*(12500-H0)/9000+1.0
得到WBB=1.55556
是因为把没有赋值的H0按照H0=0处理了。

对的,就是这样,现在已经把整个问题都解决了,谢谢
4楼2016-06-28 01:41:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

david007bit

新虫 (初入文坛)

引用回帖:
3楼: Originally posted by zbouyang at 2016-06-27 22:42:44
在Fortran中,一个公式要用到某个变量的某个值的话,必须在该公式之前对该变量赋值才会得到正确结果。
在Matlab中,使用公式前也要先对其中的变量赋值,否则也可能出错的。

你说:
转成matlab之后,若写成
WB ...

可能是吧,凌晨的时候写的程序,可能犯困没注意,现在问题已经解决了,多谢
5楼2016-06-28 01:42:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 david007bit 的主题更新
信息提示
请填处理意见