matlab题目求解

x = [50 50 -50 -50];y = [40 -40 -40 -40];dt = 0.04;v=0.5;t=0for i=1:4 plot(x(i),y(i),'.','MakerSize',8);hold onendepsilon = 0.1;d = 20; j = 0;while epsilon<d t=t+dt; for j=1:4 if j==4 d=sqrt((x(1)-x(j))^2+(y(1)-y(j))^2); x(j)=x(j)+v*dt*((x(1)-x(j))/d); y(j)=y(j)+v*dt*((y(1)-y(j))/d); else d=sqrt((x(j+1)-x(j))^2+(y(1)-y(j))^2); x(j)=x(j)+v*dt*((x(j+1)-x(j))/d); y(j)=y(j)+v*dt*((y(j+1)-y(j))/d); end plot(x(j),y(j),'.','MakerSize',8);hold on endend t = 0错误使用 plotLine 类中没有 MakerSize 属性。不知道哪里错了不知道哪里错了

第1个回答  2017-06-18
close all; clear all; clc

x = [50 50 -50 -50];y = [40 -40 -40 40];

dt = 0.02;
v = 0.5;
t=0;    %  Time
epsilon = 0.1;

d = zeros(4,1);

for i=1:4
    plot(x(i),y(i),'.','MarkerSize',8);
    hold on
end

x = [x x(1)];y = [y y(1)];

for j=1:4
    
    d(j)=sqrt((x(j+1)-x(j))^2+(y(j+1)-y(j))^2);
    d1 = sum(d);
end

k1 = 0;

XX = x;
YY = y;

while d1 > epsilon
    
    k1 = k1+1;
    
    t=t+dt;  %  Time
    
    x0 = x;
    y0 = y;
    
    for j=1:4
        
        d(j)=sqrt((x0(j+1)-x0(j))^2+(y0(j+1)-y0(j))^2);
        x(j)=x0(j)+v*dt*((x0(j+1)-x0(j))/d(j));
        y(j)=y0(j)+v*dt*((y0(j+1)-y0(j))/d(j));
        
        d1 = sum(d);
        
    end
    
    x(end) = x(1);
    y(end) = y(1);
    
    XX = [XX;x];
    YY = [YY;y];
    
end


plot(XX,YY,'.','MarkerSize',8);
axis equal
grid on

%  Time
t


本回答被提问者采纳
第2个回答  2017-06-18
是MarkerSize,不是MakerSize,少了个r追问

改了之后是这样

追答

你怎么改的....

追问

就是把markersize改了

追答

这是你写的程序,我运行了没问题,虽然觉得结果不一定对就是了。
x = [50 50 -50 -50];

y = [40 -40 -40 -40];

dt = 0.04;

v=0.5;

t=0;

for i=1:4

plot(x(i),y(i),'.','MarkerSize',8);

hold on

end

epsilon = 0.1;

d = 20;

j = 0;

while epsilon<d

t=t+dt;

for j=1:4

if j==4

d=sqrt((x(1)-x(j))^2+(y(1)-y(j))^2);

x(j)=x(j)+v*dt*((x(1)-x(j))/d);

y(j)=y(j)+v*dt*((y(1)-y(j))/d);

else

d=sqrt((x(j+1)-x(j))^2+(y(1)-y(j))^2);

x(j)=x(j)+v*dt*((x(j+1)-x(j))/d);

y(j)=y(j)+v*dt*((y(j+1)-y(j))/d);

end

plot(x(j),y(j),'.','MarkerSize',8);

hold on

end

end

t = 0;

相似回答