Appartenance d'un point dans une grille de points

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Diane MANZON
Messages : 42
Enregistré le : 18 Juin 2018, 08:31

Appartenance d'un point dans une grille de points

Messagepar Diane MANZON » 11 Fév 2019, 08:36

Bonjour à tous,

Ma problématique est la suivante:
Je définis mon espace de travail (grille de points). Je choisis un critère quelconque pour trouver un point (ici, le maximum). A partir de ce point, je vais créer des sous-matrices. Mais je voudrais être sûre que selon mon pas de variation (ici, i + scale), je suis toujours dans ma grille de points initiale.
Voici un code reproductible:

Code : Tout sélectionner

## Paramètres
r <- sqrt(2)
scale = 0.0707

## Création de la grille de points
Xg <- expand.grid(X1 = seq(-r,r,scale), X2=seq(-r,r,scale))
Xg <- as.matrix(Xg)
sphere <- sqrt(Xg[,1]^2+Xg[,2]^2)
Xg2 <- cbind(Xg, sphere)
Xg3 <- Xg2[Xg2[,3]<=r+0.001,]
X <- Xg3[,-3]
rm(Xg,Xg2,Xg3)

## Critère quelconque
D <- matrix(rnorm(1257), nrow=1257, ncol=1)

Des <- cbind(X, D)

## Critère le plus grand
which.max(Des[,3])
mx <- as.matrix(Des[Des[,3]==max(Des[,3]),])

## graphique 
matplot(X[,1], X[,2], pch=1)
matplot(mx[1,], mx[2,], pch=16, col="blue", add=TRUE)

try <- matrix(numeric(), nrow=10, ncol=2)

for (i in 1:nrow(try)) {
  try[i,1] <- mx[1,1]+i*scale
  try[i,2] <- mx[2,1]+i*scale
}


J'ai essayé d'utiliser la fonction match, mais chaque valeur est testée séparément, or je voudrais tester la ligne complète de try avec les lignes de X.
J'espère que je suis assez claire...

Quelqu'un aurait-il une idée ?
Je vous remercie par avance,

Bien cordialement,

Diane

François Bonnot
Messages : 463
Enregistré le : 10 Nov 2004, 15:19
Contact :

Re: Appartenance d'un point dans une grille de points

Messagepar François Bonnot » 11 Fév 2019, 13:54

Bonjour,
Ce que vous cherchez à faire n'est pas très clair... mais voici un code qui vous aidera peut-être:

Code : Tout sélectionner

r <- sqrt(2)+0.001
scale = 0.0707

u <- function(x) sqrt(x[1]^2+x[2]^2)

X <- expand.grid(X1 = seq(-r,r,scale), X2=seq(-r,r,scale))
X <- X[apply(X,1,u)<=r,]
X <- cbind(X,D=rnorm(nrow(X)))

z <- X[X$D==max(X$D),1:2]
plot(X[1:2],asp=1)
points(z,pch=16,col="blue")

z <- z+scale
try <- NULL
while(u(z)<r) {
    try <- rbind(try,z)
    z <- z+scale
}

points(try,pch=16,col="red")
François

Diane MANZON
Messages : 42
Enregistré le : 18 Juin 2018, 08:31

Re: Appartenance d'un point dans une grille de points

Messagepar Diane MANZON » 11 Fév 2019, 14:03

Bonjour François,

C'est exactement ça merci !!
J'étais parvenue à la même chose mais avec un code beaucoup plus compliqué!

Bonne journée,

Diane


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité