Matlab 同时移动多个对象

Matlab 同时移动多个对象,matlab,Matlab,我需要在MATLAB环境中使多个对象同时移动。 我已经为三个移动的物体做了一个代码。但是,这些对象是连续移动的。我需要看到所有对象同时移动 % Create data t = -4:0.1:4; % Time data x = t; % Position data y = x; % Position data h = plot(x(1),0,'o','MarkerSize',20,'MarkerFaceColor','g'); xlim([-5,5]); ylim([-5,5]); g

我需要在MATLAB环境中使多个对象同时移动。 我已经为三个移动的物体做了一个代码。但是,这些对象是连续移动的。我需要看到所有对象同时移动

% Create data
t = -4:0.1:4;    % Time data
x = t; % Position data
y = x; % Position data

h = plot(x(1),0,'o','MarkerSize',20,'MarkerFaceColor','g');

xlim([-5,5]);
ylim([-5,5]);
grid on

% Animation Loop one
i = 1;

while i<=length(x)
    set(h,'XData',x(i), 'YData',y(i));

          drawnow;
     M(i) = getframe(1);
        i=i+1;

end

hold on

t = -4:0.1:4;    % Time data
x = t; % Position data
y = -x; % Position data
h = plot(x(1),0,'o','MarkerSize',20,'MarkerFaceColor','r');
i = 1;
while i<=length(x)
    set(h,'XData',x(i), 'YData',y(i));

          drawnow;
     M(i) = getframe(1);
        i=i+1;

end


hold on

t = -4:0.1:4;    % Time data
x = t; % Position data

h = plot(x(1),0,'o','MarkerSize',20,'MarkerFaceColor','b');
i = 1;
while i<=length(x)
    set(h,'XData',x(i));

          drawnow;
     M(i) = getframe(1);
        i=i+1;

end
%创建数据
t=-4:0.1:4;%时间数据
x=t;%位置数据
y=x;%位置数据
h=绘图(x(1),0,'o','MarkerSize',20,'MarkerFaceColor','g');
xlim([-5,5]);
ylim([-5,5]);
网格化
%动画循环一
i=1;
而i外循环必须是时间(x是您的情况),内循环必须是对象。这样,它们将被视为同时飞行。用一种有点抽象的表示法:

% outer loop over animation time
for time = 1 : last_time
  % inner loop over all objects
  for object = 1 : last_object
    % draw a specific object at a specific time
    draw(object, time);
  end
end

也许你想试试这个:

    % Create data
    t = -4:0.1:40;    % Time data
    x = t; % Position data
    y = x; % Position data
    x1 = x;
    y1 = -y;
    h = plot(x(1),y(1),'o','MarkerSize',20,'MarkerFaceColor','g');
    hold on
    h1 = plot(x1(1),y1(1),'o','MarkerSize',20,'MarkerFaceColor','r');
    hold on
    xlim([0,50]);
    ylim([-50,50]);
    grid on
    % Animation Loop one
    i = 1;
    while i<=length(x)
        set(h,'XData',x(i), 'YData',y(i));
        set(h1,'XData',x1(i), 'YData',y1(i));
              drawnow;
         M(i) = getframe(1);
            i=i+1;
    end
%创建数据
t=-4:0.1:40;%时间数据
x=t;%位置数据
y=x;%位置数据
x1=x;
y1=-y;
h=绘图(x(1),y(1),'o','MarkerSize',20,'MarkerFaceColor','g');
等等
h1=绘图(x1(1),y1(1),'o','MarkerSize',20,'MarkerFaceColor','r');
等等
xlim([0,50]);
ylim([-50,50]);
网格化
%动画循环一
i=1;

当我想让它们同时移动时出现,还是想让移动对象的代码并行执行(如线程)以便对象同时移动?我需要所有对象同时移动,以便窗口显示所有对象以不同的速度和方向移动。目前,当一个完成移动后,第二个出现。你能把这个应用到我的例子中吗please@user3481947但是你接受了这个答案。。。?这意味着你对给出的答案感到满意。是的,我对答案感到满意。我只是想申请我的例子对不起,我没有足够的时间将一般方案应用到你的例子中。