Ausgwählte Werte in einer Matrix löschen

Fragen zu Stata Syntax und Do-Files.

Ausgwählte Werte in einer Matrix löschen

Beitragvon sonne » Di 3. Apr 2012, 11:15

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
sonne
 
Beiträge: 13
Registriert: So 1. Apr 2012, 10:59
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

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

Beitragvon daniel » Di 3. Apr 2012, 12:36

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'] = .
    }
}
Stata is an invented word, not an acronym, and should not appear with all letters capitalized: please write “Stata”, not “STATA”.
daniel
 
Beiträge: 1060
Registriert: Sa 1. Okt 2011, 17:20
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

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

Beitragvon sonne » Mi 25. Apr 2012, 09:37

Sorry für die späte Antwort,
danke für die Hilfe! Damit konnte ich mein Problem lösen (denke ich) ...
sonne
 
Beiträge: 13
Registriert: So 1. Apr 2012, 10:59
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post


Zurück zu Stata Syntax

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron