matlab的一个问题

来源:百度知道 编辑:UC知道 时间:2024/06/08 13:32:14
n=input(100)
f=[1,1]:i=1:
while f(i)+f(i+1)<n
f9i+2)=f(i+1)+f(i);i=i+1:
end,
f,plot(f)

为什么这个程序不行?

如果N是要从键盘输入呢
那要怎样

n=input(100)
f=[1,1];i=1;
while f(i)+f(i+1)<n
f(i+2)=f(i+1)+f(i);i=i+1;
end;
f,plot(f)
??? Error using ==> input
Function 'input' is not defined for values of class 'double'.
明显是input的输入数据类型有问题
正确语法是这样的input('100'),只支持string类型的输入
但是你的本意不是这样,不应该调用input
直接n=100就行了
n=100;
f=[1,1];i=1;
while f(i)+f(i+1)<n
f(i+2)=f(i+1)+f(i);i=i+1;
end;
f,plot(f)
这样就可以了

input是用来在控制台上读取键盘的输入的字符。