Seite 1 von 1

Ausgwählte Werte in einer Matrix löschen

BeitragVerfasst: Di 3. Apr 2012, 11:15
von sonne
Kann mir jemand bei der folgenden Fragestellung helfen? Würde mir viel Arbeit ersparen!

Gibt es eine Möglichkeit,
(a) in einer Matrix alle Werte in der Diagonale (also Feld (1,1), Feld (2,2) etc. zu löschen
oder alternativ
(b) alle Werte, die "0" betragen?

Für eine Antwort wäre ich sehr dankbar

Re: Ausgwählte Werte in einer Matrix löschen

BeitragVerfasst: Di 3. Apr 2012, 12:36
von daniel
Zu a) schau Dir mal die Mata Funktion _diag() an. Alternativ kanst Du das in einem loop der Form

Code: Alles auswählen
forv j = 1/`= rowsof(<matname>)' {
    mat <matname>[`j', `j'] = .
}


machen (für symmetrische Matritzen).

Für b) fällt mir gerade keine Funktion ein, das kann man natürlich aber notfalls ebenfalls mit einem loop lösen.

Code: Alles auswählen
forv j = 1/`= rowsof(<matname>)' {
    forv k = 1/`= colsof(<matname>)' {
        if <matname>[`j', `k'] == 0 mat <matname>[`j', 'k'] = .
    }
}

Re: Ausgwählte Werte in einer Matrix löschen

BeitragVerfasst: Mi 25. Apr 2012, 09:37
von sonne
Sorry für die späte Antwort,
danke für die Hilfe! Damit konnte ich mein Problem lösen (denke ich) ...