a=1; b=2; s=[]; for i=1:1:20 s(i)=b/a; c=b; b=a+b; a=c; end s; sum=sum(s)这段代码为什么求不了和
时间: 2023-08-07 15:02:10 浏览: 132
这段代码可以求和,但是需要注意的是,在MATLAB中,`sum`是一个内置函数,不能用作变量名。因此,如果将计算结果赋值给名为`sum`的变量,就会覆盖掉内置函数`sum`的功能,导致后续使用`sum`函数出现错误。
以下是修改后的代码,将`sum`变量名修改为`result`,并添加了输出结果的语句。
```matlab
a = 1;
b = 2;
s = [];
for i = 1:1:20
s(i) = b / a;
c = b;
b = a + b;
a = c;
end
result = sum(s)
```
在该代码中,我们使用了一个for循环来计算分数序列的前20项。在每一次循环中,我们首先计算当前分数的值并将其存储到`s`数组中。然后,我们更新分子和分母的值,以便计算下一个分数。最后,我们使用`sum`函数来计算分数序列的前20项之和,并将结果赋值给`result`变量。最后,我们使用`disp`函数输出结果。
可以在MATLAB命令窗口中运行该代码,例如,输入以下命令:
```matlab
a = 1;
b = 2;
s = [];
for i = 1:1:20
s(i) = b / a;
c = b;
b = a + b;
a = c;
end
result = sum(s)
disp(result)
```
运行该命令后,MATLAB将输出分数序列的前20项之和的值。
阅读全文