[問題] loop使用已回收

看板MATLAB作者 (PPP)時間16年前 (2009/10/23 01:52), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
板上的大大 我有有另外一個問題,首先我先附上我的code path=zeros(385,8) ; timestep=1; rpm=2000; deltaT=timestep*(120/rpm/720); p=1135; txtno=num2str(p); filename=strcat('hydrogen_position_',txtno,'.txt'); H=dlmread(filename); Opoint(1,:)=H(104458,:) path(p-1000,:)=H(104458,:) for r=1136:1138; if r==1136 x1(r-1135,1)=Opoint(1,5)+Opoint(1,2).*deltaT y1(r-1135,1)=Opoint(1,6)+Opoint(1,3).*deltaT z1(r-1135,1)=Opoint(1,7)+Opoint(1,4).*deltaT txtno=num2str(r); filename2=strcat('hydrogen_position_',txtno,'.txt'); H2=dlmread(filename2); [Dmin,Dpos]=min(((H2(:,5)-x1(r-1135,1)).*(H2(:,5)-x1(r-1135,1))+(H2(:,6)-y1(r-1135,1)).*(H2(:,6)-y1(r-1135,1))+(H2(:,7)-z1(r-1135,1)).*(H2(:,7)-z1(r-1135,1))).^0.5) ; path(r-1000,:)=H2(Dpos,:) x1(r-1134,1)=H2(Dpos,5) y1(r-1134,1)=H2(Dpos,6) z1(r-1134,1)=H2(Dpos,7) else txtno=num2str(r); filename2=strcat('hydrogen_position_',txtno,'.txt'); H2=dlmread(filename2); [Dmin,Dpos]=min(((H2(:,5)-x1(r-1135,1)).*(H2(:,5)-x1(r-1135,1))+(H2(:,6)-y1 (r-1135,1)).*(H2(:,6)-y1(r-1135,1))+(H2(:,7)-z1(r-1135,1)).*(H2(:,7)- z1(r-1135,1))).^0.5) ; path(r-1000,:)=H2(Dpos,:) x1(r-1134,1)=H2(Dpos,5) y1(r-1134,1)=H2(Dpos,6) z1(r-1134,1)=H2(Dpos,7) end end 這個code主要視是在預測下一點的位置 首先我有385 txt檔,那我首先寫了個loop,將我的txt檔讀進來並且叫做H的矩陣 接著我指定我的初始點,也就是在code中,第135筆的資料,Opoint(1,:)=H(104458,:) 並存入x1(1,:),y1(1,:),z1(1,:) 這個資料裡面有(x y z ) 與 (u v w) 我利用我的初始點的位置及各方向的速度 預測下一點,利用x1=x0+u0*delta T 的方式 y1=y0+v0*delta T z1=z0+w0*delta T 在將此點於下一筆資料中,也就是第136筆中,利用計算距離的方式,找出最短距離的點 然後將他存入x1(2,:),y1(2,:),z1(2,:)中,並於第137筆計算時,再回去讀x1(2,:), y1(2,:),z1(2,:)的資料,在進行計算 但是我計算出來的點,完全不會依不同時間跑,這是為什麼呢 請問是我的code中有哪個地方是需要改的呢 謝謝大家 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.234.35
文章代碼(AID): #1Au9l79F (MATLAB)
文章代碼(AID): #1Au9l79F (MATLAB)