So entfernen Sie eine bestimmte Zeile oder Spalte bei Verwendung der Eigenbibliothek c ++

9

Ich benutze die Eigen-Bibliothek für mein Projekt. Ich suche, wie man eine bestimmte Reihe oder Spalte von der gegebenen Matrix in Eigen entfernt. Ich bin nicht erfolgreich.

%Vor%

anders als durch die gesamte Matrix zu iterieren oder Blockoperationen auf Matrix A zu verwenden. Gibt es eine Methode, es einfach zu tun?

    
wholock 08.11.2012, 13:58
quelle

5 Antworten

9

Die Blockfunktionen sind etwas sauberer:

%Vor%     
Andrew 11.01.2014, 21:19
quelle
1

Ich bin sehr neu in C ++, aber dieser Code funktioniert in der Mai-Anwendung.

Es funktioniert nur für volle dynamische Matrizen, aber kann es anpassen.

Wenn jemand einen besseren Weg hat, zeig mir bitte, dass ich wirklich lernen will.

%Vor%     
Marcos Paulo SUS 11.01.2013 06:25
quelle
0

Um Andrews Antwort zu verbessern, verwenden Sie bottomRows / rightCols.

%Vor%     
raahlb 19.09.2017 14:39
quelle
0

Sie können die folgende statische Version für bestimmte Anwendungen besser finden (und mehr im Einklang mit dem Geist der Eigenkompilierungszeit-Effizienz). In diesem Fall erstellen Sie eine neue Matrix ohne die Zeile. Eine ähnliche Funktion kann für Spalten mit .leftCols() .rightCols()

erstellt werden %Vor%

Viel Spaß!

    
AOK 23.11.2017 16:05
quelle
0

Ich weiß, dass es eine alte Frage ist, aber es scheint, dass Eigen jetzt das Erstellen einer Submatrix unterstützt, die durch die indizierten Zeilen und Spalten definiert ist: Ссылка Ссылка

Es ist einfach nicht in der Dokumentation, es scheint ...

    
NaN 05.04.2018 15:46
quelle

Tags und Links