matlab,麻烦解释一下这个怎么运行的

matlab,麻烦解释一下这个怎么运行的
function y=expt(base,exponent)
if exponent==1
y=base;
else
y=base*expt(base,exponent-1);
end
你好,是这样的,这个函数是我依葫芦画瓢的方法,按照老师指导编的
但是我自己想不通
为什么exponent-1代进去就变成循环了呢
能不能具体描述下,譬如,当输入2,4的时候,这个函数是怎么运行的呢,谢谢!!
很明显,这是一个matlab的函数,我试着解释一下:
expt 是函态模锋数的名字,y是输出参数(函数值),base和exponent是输入参数(自变量)。你把这些代码放到一个m文件里,并保存名为expt.m的文件(matlab的wokr文件夹里),当你要调用这个函数的时候,你就要在command窗口写:

y=expt(base0,exponent0)
其中,帆晌base0和exponent0是你给的自变量的值,matlab会自动把base0的值付给原函数的base,把exponent0的值付给原函数的exponent,然后进行运算。就会得出在base0和exponent0的情况下y的值。

这种算法叫做“递归算法”,你可自己查查资料
我举例说明一下;
例如:y=expt(2,4) 这里的y是怎么算出来的呢?
y=2*expt(2,4)
expt(2,4)=2*expt(2,4-1)
expt(2,4-1)=2*expt(2,4-1-1)
expt(2,4-1-1)=2*expt(2,4-1-1-1)

现在,可以看出,expt(2,4-1-1-1)=expt(2,1) 这时的exponent=1了,所以就执行了:expt(2,1)=2.然后你把expt(2,1)=2,再以一步一步往回带,就可以得出y=(((2)*2)*2)*2=2^4=16 (加了括码野号,是让你明白计算步骤),你运行一下,是不是这个结果。
其实这个函数就是求base的exponent次方
比方说function a=expt(1,1);
← 上一篇: 下一篇: →