2016-06-11 4 views
0

Ich muss eine spärliche Matix mit Größe mit der Größe nrow(X), die aus diesen drei Matrizen (II, JK, JH) gemacht wird definieren. Ihre Größe entspricht 3164*1. Bis jetzt kam ich zu dem folgenden Befehl, der nicht korrekt ist.erstellen Sie eine spärliche Matrix mit einer definierten Größe durch Verwendung von 3 Matrizen - R

Gradient <- sparseMatrix(II,JK,JH, dims=c(nrow(X),nrow(X))) 

II hat einen Wert von 3 bis 82 (es repeatation hat, beispielsweise 10 mal Wert 3 und 14-fachen Wert 4) .JK ist auch die gleiche wie II, aber in II wurden die Werte sortiert, während in der JK sie haben nicht und schließlich die JH, die -1 und 1 ist.

Auch sollte die Größe der Sparse-Matrix 83 * 83 sein.

Jede Hilfe wäre dankbar.

Dank

+0

Bitte fügen Sie minimale Beispiele von II, JK, JH und X und hinzu Ihre gewünschte Ausgabe. Bitte fügen Sie auch hinzu, wie Ihre Code-Ausgabe falsch ist. Ohne diese können wir nicht helfen. – vincentmajor

+1

Dies wird leicht zu beantworten sein, aber ohne Daten erfordert eine Antwort eine Menge Rätselraten. Welcher der drei Vektoren 'II'' JK' 'JH' enthält die Matrixelemente? Welcher enthält den Zeilenindex und welchen der Spaltenindex? Wenn Sie ein kleines reproduzierbares Beispiel mit einer Matrix von zB 5x6 einfügen, können Sie innerhalb weniger Minuten eine Antwort erhalten. – RHertel

+0

@RHertel, ich habe meine Frage mit den erforderlichen Informationen bearbeitet. –

Antwort

0

Hier ist ein Beispiel, dass Macht Hilfe. Die Information in der Post ist nicht ausreichend, um sicher zu sein, aber sie ist spezifisch genug, um anzunehmen, dass entweder dieser Matrixtyp oder die Transponierung das gewünschte Ergebnis sind.

Zuerst erstellen wir einige Mock Daten

set.seed(42) # for reproducibility of the example 
II <- as.matrix(sample(7,replace=TRUE)) 
JK <- as.matrix(sample(7,replace=TRUE)) 
JH <- sample(c(1,-1),length(II),replace=TRUE) 

Hinweis: Die as.matrix() Befehle sind oben nicht notwendig, aber die OP festgestellt, dass die Vektoren II, JK werden JH als Matrizen gespeichert, so dass ich eingeschlossen sie um dieselbe Datenklasse zu erhalten.

Es macht keinen Unterschied, ob es sich um eindimensionale Matrizen oder um dimensionslose Vektoren handelt. in diesem Beispiel verwendete

7 x 7 sparse Matrix of class "dgTMatrix" 

[1,] . . . . . . . 
[2,] . . . . . . . 
[3,] . . . . -1 . . 
[4,] . . . . . . -1 
[5,] . . . . . 1 . 
[6,] . -1 . 1 . . . 
[7,] 1 . . . -1 . . 

Daten:

library(Matrix) 
spMatrix(max(II), max(JK), i = II, j = JK, x = JH) 

Das Ergebnis ist die folgende sparse (7x7) Matrix:

Mit dieser Art von Daten kann eine Sparse-Matrix wie folgt erstellt werden :

Row indices: 
II <- as.matrix(c(7, 7, 3, 6, 5, 4, 6)) 
Column indices: 
JK <- as.matrix(c(1, 5, 5, 4, 6, 7, 2)) 
Matrix elements: 
JH <- c(1, -1, -1, 1, 1, -1, -1) 
Verwandte Themen