专注Java教育13年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,一家只教授Java的培训机构
首页 hot资讯 matlab递归调用的例子

matlab递归调用的例子

更新时间:2022-08-09 10:13:29 来源:动力节点 浏览173次

1.基础

递归 是一种巧妙而巧妙的构造,它允许函数调用自身。Matlab 编程语言支持它,因此函数可以在自己的执行过程中调用自己。Java递归方法可以直接在 Matlab 中实现。

这是一个简单的递归示例,我们来详细说明.

递归代码示例:

function y = ten_exp(n)
% 这是一个计算 y = 10^n 的递归程序。
% 该程序仅在 n 为非负整数时才有效。
% 如果 n 为负数,算法不会停止。 
if n == 0
    y = 1
else
    n  %<< 此行不需要,但用于检查
    y = 10 * ten_exp(n-1)
end

在这些语句中(故意)避免使用分号,以查看不同级别的递归中的值更新。您可以通过在编辑器中运行分步功能来探索代码。

此代码具有使用分支的构造。比较 n == 0 是递归的基础,因为它定义了最后一步或最低级别。这是让程序停止调用自身的唯一方法。

分支中的“ else ”部分是递归的关键。诀窍是它调用了一个较低的值 (n - 1),并且它将继续这样做,直到它下降到 n = 0。

使用这种自调用技术时有几个注意事项:

第一个是函数可能永远调用自己并且永远不会返回答案。如果我们输入一个否定的参数,就会在上面的代码中发生这种情况。

第二个是递归会导致冗余计算,这可能很耗时。上面的代码一次又一次地使用可以使用单行代码 (10^n) 执行的指令。

第三个考虑是它需要更多的内存分配。在大型系统的计算中,不应将内存空间浪费在程序开销上。

另一方面,递归程序比非递归程序更容易编写和阅读。

2.递归求解阶乘

现在,我们将再次使用这种技术编写一个函数来计算阶乘 (n!)。我们知道这不是计算阶乘数的最有效方法,但它在概念上是一种易于测试和实现的递归计算.

function y = fact(n)
% 我们有最大的数
y = n 
%如果n == 0
    y = 1则  我们下降到 0
否则% 我们乘以前面的所有整数,% 一次一个... y = y * fact(n-1) end

同样,这些是此示例的注意事项:

该函数可能会永远调用自己并且永远不会返回答案。如果我们输入一个否定的参数,就会在上面的代码中发生这种情况。

有可能是耗时的冗余计算。上面的代码一次又一次地使用可以使用单个内置函数(factorial(n))执行的指令。

以上就是关于“matlab递归调用的例子”介绍,大家如果对此比较感兴趣,想了解更多相关知识,可以关注一下动力节点的Java教程,里面有更丰富的知识等着大家去学习,相信对大家一定会有所帮助的。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>
返回顶部