MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   资料存档 (https://www.labfans.com/bbs/forumdisplay.php?f=72)
-   -   如何在MATLAB中正确使用递归? (https://www.labfans.com/bbs/showthread.php?t=26203)

poster 2019-12-14 20:13

如何在MATLAB中正确使用递归?
 
我有一个简单的m文件,它是作为递归函数创建的:

function[velocity] = terminal(m,c,t,vi) %inputs: % m = mass % c = coeffcient of drag % t = time % vi = initial velocity if t==18, velocity = vi+(9.8-c/m*(vi))*2; return end velocity = vi+(9.8-c/m*(vi))*2; velocity %used to print out velocity for debugging terminal(m,c,t+2,velocity); end 速度计算正确完成,因为它打印出每个递归。但是,最后返回的“ ans”是递归的第一个计算值。我的问题是如何递归正确设置matlab函数?还是可以做到,使用循环会更好吗?



[B]回答:[/B]

忍受我,一段时间以来没有做过很多Matlab。

但是我只是简单地迭代调用您的函数:

velocity = vi for t = 0:2:18 velocity = velocity+(9.8-c/m*(velocity))*2; end 然后,对于每个t实例,它将计算给定初始速度的速度,并使用新的速度更新该值。

要使步长为2, [URL="http://cnx.org/content/m13258/1.3/"]只需将步长添加到步长即可。[/URL]

更新以回应评论



[url=https://stackoverflow.com/questions/4760495]更多&回答...[/url]


所有时间均为北京时间。现在的时间是 23:27

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.