在matlab中停止for循环的输出

在matlab中停止for循环的输出,matlab,for-loop,output,Matlab,For Loop,Output,这个简单的斐波那契数生成器程序面临一个问题: function f = fibonr(n) f(1) = 1; f(2) = 1; for i = 3:n f(i) = f(i-1) + f(i-2); end end 如果我只想显示序列的第n个数字,我应该做什么调整 function f = fibonr(n) f = zeros(n,1); %//initialise the output array f(1,1) = 1; f(2,1) = 1; for ii

这个简单的斐波那契数生成器程序面临一个问题:

function f = fibonr(n)
f(1) = 1; 
f(2) = 1;
    for i = 3:n
    f(i) = f(i-1) + f(i-2);
    end

end
如果我只想显示序列的第n个数字,我应该做什么调整

function f = fibonr(n)
f = zeros(n,1); %//initialise the output array
f(1,1) = 1;
f(2,1) = 1;
for ii = 3:n
    f(ii,1) = f(ii-1,1) + f(ii-2,1);
end
%//create a string with text and variables
str = sprintf('The %d th number in the Fibonacci sequence is %d',n,f(ii,1));
disp(str) %//display your output.
end
首先是:。其次,我切换到使用列向量,因为MATLAB处理它们的速度更快,我初始化数组的速度也更快(因此在
f(I)=
行下方的亮橙色会摆动)

调用您的函数:

output = fibonr(10);
The 10 th number in the Fibonacci sequence is 55

如果您使用例如
n=20
但仍然需要第10个参数,只需调用
output(10)

如果您需要立即指定的输出,您可以使用
nargin
。如果您调用
fibonr(n)
,此代码将提供所有序列,或者您可以指定一个向量来获取所述位置的fibonacy编号。如果您对指定的输出和所有数字都感兴趣,可以使用以下命令调用函数:
[output,fibNumber]=fibonr(n,v)


一旦for循环完成(在n次迭代之后),第n个数字将是存储在
f
中的最后一个数字,对吗?然后可以在循环的
end
语句之后显示
f(end)
。这是你的意思吗?我照你说的做了,但在这种情况下,我得到两个输出:第一个输出存储了最后一个数字,程序的答案是整个数字向量。你能解释一下零(n,1)的意思吗?这并不能解决我的问题。我试过使用你的代码,但是我得到的是一个无限的第n个数字的列表。必须使用前面给出的函数和命令窗口中“调用你的函数”下面的代码。是的,有,使用分号,就像我在回答中给你展示的那样。请仔细阅读答案并准确复制代码,因为您调用的函数类似于
fibonr(10)
,而不像我在答案中向您展示的那样。
function [output,f] = fibonr(n,v)
f(1) = 1; 
f(2) = 1;
    for i = 3:n
    f(i) = f(i-1) + f(i-2);
    end

 if nargin() > 1
     output = f(v);
 else
     output = f;
end