Matlab编写程序如下,但是运行时就是不显示图像曲线,X、y坐标也只有局部,求指导。
发布网友
发布时间:2023-09-08 01:53
我来回答
共5个回答
热心网友
时间:2023-10-03 03:03
你的程序基本都是正确的,就是for循环结束之后,你的A,n,只有一个值,所以就画不出你要的那条直线,而只是最后的那一个点;
你只要把A,n改正向量的表示形式就好了!
for i=1:40
ua=3*i+30;
K=1620*9.8*0.0165*(1+(0.01*(ua-50)));
L=(1.6*1.86*0.6*ua^2)/21.15;
A(i)=((L+K)*0.2806)/4;
n(i)=(ua*4)/(0.2806*0.377);
end
plot(n,A);
热心网友
时间:2023-10-03 03:03
%for循环结束之后,A,n只有一个值,所以画出来是一个点;
%可以不用for循环,以加快运行速度,像你这种的for循环,如果要是大的话,
%可以使用matlabpool open 2打开MATLAB池,然后for改为parfor;
i=1:40;
ua=3*i+30;
K=1620*9.8*0.0165*(1+(0.01*(ua-50)));
L=(1.6*1.86*0.6*ua.^2)/21.15;%注意这儿(ua.^2)加了一个点!
A=((L+K)*0.2806)/4;
n=(ua*4)/(0.2806*0.377);
plot(n,A);
%结果的图如下:
热心网友
时间:2023-10-03 03:04
for循环结束之后,A,n,只有一个值,所以就画不出直线,而只是最后的那一个点。
简单的修改方法:
将
A=((L+K)*0.2806)/4;
n=(ua*4)/(0.2806*0.377);
改为
A(i)=((L+K)*0.2806)/4;
n(i)=(ua*4)/(0.2806*0.377);
就行了
热心网友
时间:2023-10-03 03:04
for i=1:40
ua=3*i+30;
K=1620*9.8*0.0165*(1+(0.01*(ua-50)));
L=(1.6*1.86*0.6*ua^2)/21.15;
A=((L+K)*0.2806)/4;
n=(ua*4)/(0.2806*0.377);
end
经过这个for循环后 n, A会是一个标量,就是一个数值,
你要显示曲线的话有两种方法,
1.for i=1:40
ua=3*i+30;
K=1620*9.8*0.0165*(1+(0.01*(ua-50)));
L=(1.6*1.86*0.6*ua^2)/21.15;
A=((L+K)*0.2806)/4;
n=(ua*4)/(0.2806*0.377);
plot(n, A);
hold on;
end
2.
n=zeros(1,40);
A=zeros(1,40);
for i=1:40
ua=3*i+30;
K=1620*9.8*0.0165*(1+(0.01*(ua-50)));
L=(1.6*1.86*0.6*ua^2)/21.15;
A(i)=((L+K)*0.2806)/4;
n(i)=(ua*4)/(0.2806*0.377);
end
plot(n,A);
热心网友
时间:2023-10-03 03:05
n=zeros(1,40);
A=zeros(1,40);
for i=1:40
ua=3*i+30;
K=1620*9.8*0.0165*(1+(0.01*(ua-50)));
L=(1.6*1.86*0.6*ua^2)/21.15;
A(i)=((L+K)*0.2806)/4;
n(i)=(ua*4)/(0.2806*0.377);
end
plot(n,A);