-4

我想从它的公式中得出斐波那契数列:

1+sqrt(5)/2).^n-(1-sqrt(5)/2).^n)/sqrt(5);

通过 disp 函数,而不是 fprintf;但我不能。如何通过 disp 将其写入以下形式: f(0)= 0 f(1)= 1 f(2)= 1 f(3)= 2

4

1 回答 1

2
  • 首先,在计算斐波那契数列时,你的代码中有错误,括号应该包围1+sqrt(5)1-sqrt(5)
  • ;其次,您可以在表达式的末尾删除f = ...,这样它将显示f在命令窗口中

例子

n = 1:10;
f=(((1+sqrt(5))/2).^n-((1-sqrt(5))/2).^n)/sqrt(5)

这样

f =

    1.0000    1.0000    2.0000    3.0000    5.0000    8.0000   13.0000   21.0000   34.0000

或显示如下结果

for n = 1:10
  f=(((1+sqrt(5))/2).^n-((1-sqrt(5))/2).^n)/sqrt(5);
  disp(['F(',num2str(n-1),')=',num2str(f)]);
end

这样

F(0)=1
F(1)=1
F(2)=2
F(3)=3
F(4)=5
F(5)=8
F(6)=13
F(7)=21
F(8)=34
F(9)=55

更新

如果你想申请arrayfun,你可以使用下面的代码

a =input('n:');
n = 1:a;
fdisp = @(n) disp(['F(',num2str(n-1),')=',num2str((((1+sqrt(5))/2).^n-((1-sqrt(5))/2).^n)/sqrt(5))]);

arrayfun(fdisp,n)
于 2020-02-24T13:21:53.860 回答