啊哈277 2021-06-14 10:54 采纳率: 71.4%
浏览 43
已采纳

请教用matlab代码怎么写

 

  • 写回答

1条回答 默认 最新

  • i-Data 2021-06-17 11:46
    关注
    %将时间离散化,时间间隔为dt
    n=500;          %总时刻数
    x=zeros(4,n);   %产生4行n列个零来放置坐标矩阵
    y=zeros(4,n);
    dt=0.02;        %时间间隔
    v=10;           %取速度v=10
    %四个人初始位置的横,纵坐标:这里取距离a=100
    x(1,1)=100; y(1,1)=0;
    x(2,1)=0;   y(2,1)=0;
    x(3,1)=0;   y(3,1)=100;
    x(4,1)=100; y(4,1)=100;
    
    for j=1:n-1
        for i=1:3   %前三个人的位置更新:
            d=sqrt((x(i+1,j)-x(i,j))^2+(y(i+1,j)-y(i,j))^2);    %第i个人和第i+1个人之间j时刻的距离
            dircos=(x(i+1,j)-x(i,j))/d;   %第i个人j时刻运动方向的cos和sin值
            dirsin=(y(i+1,j)-y(i,j))/d;
            x(i,j+1)=x(i,j)+v*dt*dircos;    %第i个人j+1时刻的位置的横,纵坐标
            y(i,j+1)=y(i,j)+v*dt*dirsin;
        end
                    %第四个人的位置更新:
        d=sqrt((x(1,j)-x(4,j))^2+(y(1,j)-y(4,j))^2);    %第4个人和第1个人之间j时刻的距离
        dircos=(x(1,j)-x(4,j))/d;   %第4个人j时刻运动方向的cos和sin值
        dirsin=(y(1,j)-y(4,j))/d;
        x(4,j+1)=x(4,j)+v*dt*dircos;    %第4个人j+1时刻的位置的横,纵坐标
        y(4,j+1)=y(4,j)+v*dt*dirsin;
        
                    %给第j时刻四个人的位置作图:
        plot(x(1,j),y(1,j),'r*',x(2,j),y(2,j),'y*',x(3,j),y(3,j),'b*',x(4,j),y(4,j),'g*')
        hold on
        pause(0.001)  %暂停0.001秒
    end
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥88 实在没有想法,需要个思路
  • ¥15 MATLAB报错输入参数太多
  • ¥15 python中合并修改日期相同的CSV文件并按照修改日期的名字命名文件
  • ¥15 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败