Bonjour à tous,
J'ai un peu de mal à créer une boucle à deux variables sur matlab.
Les variables ini et fim sont les itérations en début et en fin de simulation. La variable tempo est le temps de simulation en secondes.
Dans l'extrait du code ci-après j'aimerais calculer la distance que mon mobile a parcouru toutes les deux minutes. Le long de la courbe que j'obtiens j'ai tracé une droite sur laquelle je mets un point avec le temps parcouru.
La réponse sera peut être évidente mais je n'arrive vraiment pas à trouver.. Matlab me dit que "d(0) must be a positive integar or logical"
Dans l'extrait du code c'est un peu brouillon, la partie avec les length est présente car j'ai tenté de définir d(i,j)
Merci d'avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 int=120; disc=10; for i=ini:disc:fim for j=0:int:tempo M = [cos(PSI(i)+pi/2) -sin(PSI(i)+pi/2) sin(PSI(i)+pi/2) cos(PSI(i)+pi/2)]; p_int(i,1) = -Y(i)+Yini; p_int(i,2) = X(i)-Xini; desenho = M*navio'; fill((desenho(1,:)+p_int(i,1)),(desenho(2,:)+p_int(i,2)),[0.5 0.5 0.5]); k=[0 0]; l=[0 head_reach]; q=plot(k,l); set(q,'Color','red','LineWidth',4); d=zeros(length(fim-ini),length(tempo)); d(j+1)=d(j) + sqrt(X(i+1) - X(i)).^2; text(0,d(j),'2 min ','HorizontalAlignment','right'); scatter(0,d(j),'filled','LineWidth',2,'MarkerFaceColor',[0 0 1]); end end
Partager