Arrays matlab函数中的数组问题

Arrays matlab函数中的数组问题,arrays,matlab,function,Arrays,Matlab,Function,我想创建一个函数,它从数组中的前两个元素开始,然后从中创建斐波那契序列,但它创建了一个包含小数之类的奇怪矩阵,每次的列数是我想要的两倍。当我查找它时,这是我在努力阅读文档后得出的结论 我几乎没有使用MATLAB的经验,而且我已经习惯了python。我还没有找到任何真正解决我问题的方法。或帮助 function [f,s] = fibb(nmax) f = array(1,0); % first two items in array are 0 and 1 respectively for n =

我想创建一个函数,它从数组中的前两个元素开始,然后从中创建斐波那契序列,但它创建了一个包含小数之类的奇怪矩阵,每次的列数是我想要的两倍。当我查找它时,这是我在努力阅读文档后得出的结论

我几乎没有使用MATLAB的经验,而且我已经习惯了python。我还没有找到任何真正解决我问题的方法。或帮助

function [f,s] = fibb(nmax)
f = array(1,0);
% first two items in array are 0 and 1 respectively
for n = 3 : 1 : nmax
    f(n) = [f(n-1) + f(n-2) newElem];
    % Adds new entry, entry is sum of previous two
end
s = sum(f);
% sum of the sequence

数组
不是Matlab中的内置函数。此外,斐波那契序列以
[1,1]
开头

请尝试以下操作:

function [f,s] = fibb(nmax)
    f = [1,1];
    for n = 3 : nmax
        f(n) = f(n-1) + f(n-2);
    end
    s = sum(f);
end

可能有一种更有效的方法,但这应该是代码的工作版本。

作为RPM编写内容的补充,我建议您预先分配f向量,使其工作得更快一些。只需将
f=[1,1]
命令替换为以下命令:

f = ones(1,nmax);
否则,matlab必须动态增加每个循环中向量的大小,使函数变慢。

什么是
数组(1,0)