Bonjour,
j'ai un tableau plein des valeurs (des angles). Voici le schéma d'algo à faire :Je veux obtenir en sortie un tableau contenant tous les "points d'inflexion".Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 delta = 5 * PI / 180 seuil_haut = -PI/4 + delta seuil_bas = -PI/4 - delta seuil = seuil_haut pour i = 1 jusqu'à i < (N-1) angle = ( angle(i, i-1) + angle(i+1,i) ) / 2 si angle <= seuil_bas si seuil = seuil_haut pt inflexion seuil = seuil_bas fin si
J'ai réussi à faire la moitié du code qui permet en premier lieu de calculer tous les angles et d'obtenir en sortie un tableau des angles. Voici le code :
Mais je suis bloqué dans la deuxième partie de mon schéma d'algo :Code:
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
28
29
30
31
32
33
34
35 i = function (matrix) { delta = 5 * pi / 180 seuil_haut = - pi/4 + delta seuil_bas = - pi/4 - delta seuil = seuil_haut library(dagR) n = dim(matrix)[2] l = NULL pt = NULL for(i in 2: (n-1)) { aa = paste("a",i,sep="") y = assign(aa,matrix[1,i],pos=1) bb = paste("b",i,sep="") x = assign(bb,matrix[2,i],pos=1) cc = paste("c",i-1,sep="") yy = assign(cc,matrix[1,i-1],pos=1) dd = paste("d",i-1,sep="") xx = assign(dd,matrix[2,i-1],pos=1) ee = paste("e",i+1,sep="") yyy= assign(ee,matrix[1,i+1],pos=1) ff = paste("f",i+1,sep="") xxx= assign(ff,matrix[2,i+1],pos=1) l = c (l,assign (aa,(angle= angle (c(x,y) , c(xx,yy)) + angle (c(xxx,yyy),c(x,y)) /2))) } return(l) }
Je veux obtenir en sortie un tableau contenant tous les "points d'inflexion". J'ai essayé avec ce code, mais ça marche pas :(Code:
1
2
3
4
5 si angle <= seuil_bas si seuil = seuil_haut pt inflexion seuil = seuil_bas fin si
Bien sûr ici pas d’en-tête parce que ce dernier code n'est que la suite du premier.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 t=l r=length(t) for(i in 1:r) { ee = paste("e",i,sep="") g = assign(ee,t[i],pos=1) if(g >= seuil_haut) { if(seuil == seuil_bas) { seuil = seuil_haut kk= paste("k",i,sep="") pt = c(pt,assign(kk,g[i],pos=1)) } } } return(pt) }
Veuillez me posez vos questions si ce n'est pas clair.
Merci de m'aider ça fait des jours que je teste sans arriver à une solution :cry: