问题描嫌手逗述:
如Xn+1=(Xn+2.5)*Xn (n=0,1,2,3,4,5.....)
Xo=0.3
求X1000是多少?
解析:
x=0:1000
x(1)=0.3
因为在MATLAB的数组中没有0下标,所以从1开始即X0=薯陵X1,所求的芹卖X1000=X1001
循环语句中默认步长为1
for n=1:1000
x(n+1)=(x(n)+2.5)*x(n);
end
x(1001)
程序的循环结构是指程序中重复执行某段代码的结构,常见的循环结构有while循环和for循环。在Matlab中,可以使用while循环和for循环来实现程序的循环结构。
while循环
while循环的语法格式如下:
while 条件
end
其中,条件是一个逻辑表达式,当条件为true时,执行循环体,循环执行直到条件为false为止。
例如,以下代码实现了将数组哪扰中的元素依次输出的功能:
a = [1 2 3 4 5]
i = 1
while i <= length(a)
fprintf('%d ', a(i))
i = i + 1
end
for循环
for循环的语法格式凯缓差如下:
for 迭代变量 = 起始值:步长:结束值
循环体
end
其中,迭代变量是一盯皮个变量名,起始值和结束值是常量或者变量,步长是可选的。
例如,以下代码实现了将数组中的元素依次输出的功能:
a = [1 2 3 4 5]
for i = 1:length(a)
fprintf('%d ', a(i))
end
以上是Matlab中实现循环结构的方法,希望能对您有所帮助。
错在几个地方:1、程序中while和for循环的结构不完整,有些for和最外层的while都没有在结束的时候加上end命令
2、变量的递加和变量名的递加是两码事。你的程序中看得出来你想每得到一个lamda和beta值之后迭代进入下一循环的计算。但是你在想通过变量名中加入_m和_i表示递灶纯加是非常错误的。在matlab中合理的做法是兄毕用隐尘咐矩阵lamda(m)和beta(m)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)