使用递归函数不使用任何循环在 Matlab 中生成斐波那契数列

Generating the Fibonacci Sequence in Matlab using recursive function NOT using any loop

我正在尝试编写一个递归的 matlab 函数,它接受一个参数并生成最多 n 的斐波那契数列。我到处都能找到的代码要么只输出第 n 项,要么使用循环输出整个序列。现在我不允许使用任何类型的循环,只能使用纯递归函数。如果有人可以分享 his/her 想法,我将不胜感激。提前致谢。 为了方便起见,我正在复制给出第 n 项的代码。

function f = fibor(n)
    if n == 1 || n == 2
        f = 1;
    else
        f = fibor(n-1) + fibor(n-2);
    end
end

也许你可以试试下面的代码,它保存了输出

function f = fibor(n)
    if n <= 2
        f = ones(1,n);
    else
        u = fibor(n-1);
        f = [u,sum(u(end-1:end))];
    end
end

这给出了

>> fibor(5)
ans =

   1   1   2   3   5

>> fibor(10)
ans =

    1    1    2    3    5    8   13   21   34   55