Ich habe eine Matrix mit Position (X, Y, Elevation). Ich füge eine Spalte zu der Matrix hinzu, die ich "Index" nenne. Ich erstelle einen X- und einen Y-Vektor aus der Matrix. Sie enthalten beide die Indexspalte. Ich sortiere dann aufsteigend den X- und Y-Vektor, den ich gerade gemacht habe. Ich konstruiere dann eine Z-Matrix, die die Höhe enthält, und ich verknüpfe sie mithilfe des Index mit der Position. Ich versuche dann, die Befehlskontur zu verwenden (ich möchte ein Konturdiagramm zeichnen) und bekomme den Fehler, dass X und Y aufsteigende Reihenfolge sein sollten ... was ich gerade gemacht habe !!! Was habe ich falsch gemacht?Kontur - Plot - aufsteigende Reihenfolge
noeud<-read.table("position.out")
Matrice_Noeud<-matrix(ncol = ncol(noeud), nrow=nrow(noeud))
for (i in 1:nrow(noeud)) {
for (j in 1:ncol(noeud)) {
Matrice_Noeud[i,j]<-noeud[i,j]
}
}
Matrice_Noeud <- cbind(Matrice_Noeud, c(seq(1,nrow(noeud),1)))
x<-data.frame(x=Matrice_Noeud[,1],Index=Matrice_Noeud[,4])
y<-data.frame(y=Matrice_Noeud[,2],Index=Matrice_Noeud[,4])
X<-x[order(x$x),]
Y<-y[order(y$y),]
Z<-matrix(NA, ncol=nrow(noeud),nrow=nrow(noeud))
for (x_i in 1:nrow(noeud)) {
for (y_i in 1:nrow(noeud)) {
if (Y$Index[y_i]==X$Index[x_i]) {
niveau<-which(Matrice_Noeud[,4]==Y$Index[y_i])
Z[x_i,y_i]<-Matrice_Noeud[niveau,3]
}
}
}
Xx<-array(X[,1])
Yy<-array(Y[,1])
Zz<-data.frame(Z)
contour(Xx,Yy,Zz)
'Länge (unique (noeud [1])) * Länge (unique (noeud [2]))' '= nRow (noeud)' ?? Wenn nicht, kann contour() die Daten nicht behandeln. – cuttlefish44
Nein, sind sie nicht. Länge (einmalig (noeud [, 1]) = 19; Länge (einmalig (noeud [, 2]) = 12 nrow (noeud) = 121 – John
Ich verstehe nicht ganz, warum sie gleich sein müssten? Matrix Z so, dass sie einem Gitter mit X und Y entspricht und entsprechende Werte von Z für ihre Anfangspositionierung relevant platziert werden ... Ich bin verwirrt. Würdest du mir das erklären? (tut mir leid wenn die Frage ist ein kleiner Dummkopf, aber ich bin gerade sehr verwirrt.) – John