在matlab中用disp_function显示Fibonacci序列



我想从公式中得到Fibonacci序列:

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

  • 首先,在计算Fibonacci序列时,您的代码中出现了错误,其中括号应围绕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)

最新更新