Weisen Sie den diagonalen Einträgen der Matrix den Wert zu

10

Ich muss auf einzelne Slots einer m * n-Matrix innerhalb einer for-Schleife zugreifen und diese zuweisen. Der Code bisher:

%Vor%

Wenn i = j ist, muss der NA-Wert in der Matrix durch 0 ersetzt werden.

    
DI MI 14.01.2013, 01:51
quelle

2 Antworten

11

Um die "diagonalen" Elemente auf Null zu setzen, haben Sie bereits eine Antwort erhalten, aber ich frage mich, ob Sie auf etwas allgemeineres gehofft haben. Die Gründe für mangelnden Erfolg mit diesem Code waren zweifach: Die Konstruktion Ihrer Indizes war fehlerhaft und die Indexierung war falsch. Das wäre gelungen:

%Vor%

Aber der Rückgriff auf Schleifen in R wird im Allgemeinen als letzter Ausweg betrachtet (manchmal aus den falschen Gründen.) Es gibt eine viel kompaktere Art, die gleiche "Schleifen" -Operation durchzuführen, und sie verallgemeinert weit mehr als nur die Diagonale / p> %Vor%

Wenn Sie die Subdiagonale auf Null setzen möchten, verwenden Sie einfach:

%Vor%

Sie können vermeiden, die zusätzlichen Zeilen- und Spaltenmatrizen mit diesem zu erzeugen:

%Vor%     
42- 14.01.2013, 02:24
quelle
28

Sie möchten die Funktion diag<-

%Vor%     
Matthew Lundberg 14.01.2013 02:02
quelle

Tags und Links