MATLAB 如何循环作图
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/18 04:10:25
MATLAB 如何循环作图
h=input('请输入兔子距离洞口的距离:');
T=0.1;%步长
m=1;
n=h/T;
i=input('请输入要测试的猎狗的起始位置的数目:');
for j=1:i
Xj=zeros(m,n);%狗的实时横坐标
Yj=zeros(m,n);%狗的实时纵坐标
xj=zeros(m,n);%兔子的实时横坐标
yj=zeros(m,n);%兔子的实时纵坐标
end
V=input('请输入猎狗的速度:');
v=input('请输入兔子的速度:');
A=1;%猎狗t时刻追击方向与水平方向夹角的余弦值,初值为1
B=0;%猎狗t时刻追击方向与水平方向夹角的正弦值,初值为0
for j=1:i
yj(m,1)=0;%兔子的初始位置的纵坐标
end
for j=1:i
fprintf('请输入第 %f 猎狗起始位置的坐标\n',j);
Xj(m,1)=input('请输入横坐标:');
Yj(m,1)=input('请输入纵坐标:');
end
for j=1:i
for k=1:(n-1)
A=Xj(m,k)/sqrt(Xj(m,k)^2+(Yj(m,k)-yj(m,k))^2);
B=(yj(m,k)-Yj(m,k))/sqrt(Xj(m,k)^2+(Yj(m,k)-yj(m,k))^2);
Xj(m,k+1)=Xj(m,k)-V*T*A;
Yj(m,k+1)=Yj(m,k)+V*T*B;
yj(m,k+1)=yj(m,k)+v*T;
plot(Xj,Yj,'*b')
hold on
plot(xj,yj,'*r')
hold off
legend('猎狗的路线','兔子的路线')
text(0,h,'O','Color','magenta');
text(0,h,'兔子洞口');
grid on;
box on;
axis equal
end
end
程序如上所示 要求能在一个坐标图中 画出给定的猎狗的路线图 比如有三个起点 则有三条路线 现在只能显示第一条
h=input('请输入兔子距离洞口的距离:');
T=0.1;%步长
m=1;
n=h/T;
i=input('请输入要测试的猎狗的起始位置的数目:');
for j=1:i
Xj=zeros(m,n);%狗的实时横坐标
Yj=zeros(m,n);%狗的实时纵坐标
xj=zeros(m,n);%兔子的实时横坐标
yj=zeros(m,n);%兔子的实时纵坐标
end
V=input('请输入猎狗的速度:');
v=input('请输入兔子的速度:');
A=1;%猎狗t时刻追击方向与水平方向夹角的余弦值,初值为1
B=0;%猎狗t时刻追击方向与水平方向夹角的正弦值,初值为0
for j=1:i
yj(m,1)=0;%兔子的初始位置的纵坐标
end
for j=1:i
fprintf('请输入第 %f 猎狗起始位置的坐标\n',j);
Xj(m,1)=input('请输入横坐标:');
Yj(m,1)=input('请输入纵坐标:');
end
for j=1:i
for k=1:(n-1)
A=Xj(m,k)/sqrt(Xj(m,k)^2+(Yj(m,k)-yj(m,k))^2);
B=(yj(m,k)-Yj(m,k))/sqrt(Xj(m,k)^2+(Yj(m,k)-yj(m,k))^2);
Xj(m,k+1)=Xj(m,k)-V*T*A;
Yj(m,k+1)=Yj(m,k)+V*T*B;
yj(m,k+1)=yj(m,k)+v*T;
plot(Xj,Yj,'*b')
hold on
plot(xj,yj,'*r')
hold off
legend('猎狗的路线','兔子的路线')
text(0,h,'O','Color','magenta');
text(0,h,'兔子洞口');
grid on;
box on;
axis equal
end
end
程序如上所示 要求能在一个坐标图中 画出给定的猎狗的路线图 比如有三个起点 则有三条路线 现在只能显示第一条
新手啊?Xj……,X(j).具体看看程序,简单改了下,两条路径可以正常表示了.但程序还是有其他问题,没明白你的m是什么意思,另外应该让用户输入兔子的坐标,另外兔子的路径有问题.
h=input('请输入兔子距离洞口的距离:');
T=0.1;%步长
m=1;
n=h/T;
i=input('请输入要测试的猎狗的起始位置的数目:');
for j=1:i
X(j,1:n)=zeros(n,1);%狗的实时横坐标
Y(j,1:n)=zeros(n,1);%狗的实时纵坐标
xj=zeros(m,n);%兔子的实时横坐标
yj=zeros(m,n);%兔子的实时纵坐标
end
V=input('请输入猎狗的速度:');
v=input('请输入兔子的速度:');
A=1;%猎狗t时刻追击方向与水平方向夹角的余弦值,初值为1
B=0;%猎狗t时刻追击方向与水平方向夹角的正弦值,初值为0
for j=1:i
yj(m,1)=0;%兔子的初始位置的纵坐标
end
for j=1:i
fprintf('请输入第 %d 猎狗起始位置的坐标\n',j);
X(j,1)=input('请输入横坐标:');
Y(j,1)=input('请输入纵坐标:');
end
for j=1:i
for k=1:(n-1)
A=X(j,k)/sqrt(X(j,k)^2+(Y(j,k)-yj(m,k))^2);
B=(yj(m,k)-Y(j,k))/sqrt(X(j,k)^2+(Y(j,k)-yj(m,k))^2);
X(j,k+1)=X(j,k)-V*T*A;
Y(j,k+1)=Y(j,k)+V*T*B;
yj(m,k+1)=yj(m,k)+v*T;
plot(X(j,k),Y(j,k),'*b')
hold on
plot(xj(m,k),yj(m,k),'*r');hold on
legend('猎狗的路线','兔子的路线')
text(0,h,'O','Color','magenta');
text(0,h,'兔子洞口');
grid on;
box on;
axis equal
end
end
h=input('请输入兔子距离洞口的距离:');
T=0.1;%步长
m=1;
n=h/T;
i=input('请输入要测试的猎狗的起始位置的数目:');
for j=1:i
X(j,1:n)=zeros(n,1);%狗的实时横坐标
Y(j,1:n)=zeros(n,1);%狗的实时纵坐标
xj=zeros(m,n);%兔子的实时横坐标
yj=zeros(m,n);%兔子的实时纵坐标
end
V=input('请输入猎狗的速度:');
v=input('请输入兔子的速度:');
A=1;%猎狗t时刻追击方向与水平方向夹角的余弦值,初值为1
B=0;%猎狗t时刻追击方向与水平方向夹角的正弦值,初值为0
for j=1:i
yj(m,1)=0;%兔子的初始位置的纵坐标
end
for j=1:i
fprintf('请输入第 %d 猎狗起始位置的坐标\n',j);
X(j,1)=input('请输入横坐标:');
Y(j,1)=input('请输入纵坐标:');
end
for j=1:i
for k=1:(n-1)
A=X(j,k)/sqrt(X(j,k)^2+(Y(j,k)-yj(m,k))^2);
B=(yj(m,k)-Y(j,k))/sqrt(X(j,k)^2+(Y(j,k)-yj(m,k))^2);
X(j,k+1)=X(j,k)-V*T*A;
Y(j,k+1)=Y(j,k)+V*T*B;
yj(m,k+1)=yj(m,k)+v*T;
plot(X(j,k),Y(j,k),'*b')
hold on
plot(xj(m,k),yj(m,k),'*r');hold on
legend('猎狗的路线','兔子的路线')
text(0,h,'O','Color','magenta');
text(0,h,'兔子洞口');
grid on;
box on;
axis equal
end
end