Matlab n=input(''); for x=1:n; y(x)=(5 * x^3 - 3*x - 2)/(-4 * x^3 + 3*x - 2); end plot(1:n,y) 在Mtlab循环中y(x)=...这个(x)不能省略吗?不能写成y=.加了(x)就是我想要的图形,不加也能出图形,但是不对.为什么?
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/15 22:23:21
Matlab n=input(''); for x=1:n; y(x)=(5 * x^3 - 3*x - 2)/(-4 * x^3 + 3*x - 2); end plot(1:n,y) 在Mtlab循环中y(x)=...这个(x)不能省略吗?不能写成y=.加了(x)就是我想要的图形,不加也能出图形,但是不对.为什么?
Matlab n=input(''); for x=1:n; y(x)=(5 * x^3 - 3*x - 2)/(-4 * x^3 + 3*x - 2); end plot(1:n,y)
在Mtlab循环中y(x)=...这个(x)不能省略吗?不能写成y=.加了(x)就是我想要的图形,不加也能出图形,但是不对.为什么?
Matlab n=input(''); for x=1:n; y(x)=(5 * x^3 - 3*x - 2)/(-4 * x^3 + 3*x - 2); end plot(1:n,y) 在Mtlab循环中y(x)=...这个(x)不能省略吗?不能写成y=.加了(x)就是我想要的图形,不加也能出图形,但是不对.为什么?
当然不行了,加上(x)之后,y(x)代表一个数组,通过for循环依次对数组中y(1)、y(2)...y(n)进行赋值.最后画出x=1:n和数组y之间的关系曲线,即画出y=(5*x^3-3*x-2)/(-4*x^3+3*x-2)的图形.
不过你这种作图方式是采用for效率的方式,效率很低.相比较之下,在matlab中采用数组运算的方式效率会提高很多.你可以将程序改成如下形式:
x=linspace(1,6,200); %设定自变量范围为1到6,共有200个点y=(5*x.^3-3*x-2)./(-4*x.^3+3*x-2);
plot(x,y)
这是采用数组的方式进行操作,同样可以实现你刚刚的函数.但是效率比你的函数效率要高很多.建议能使用数组操作尽量不要使用for循环.