diag () einer Kovarianzmatrix < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Ich suche einen Befehl für eine m*m*n Matrix. Die Matrix stellt die Kovarianzen der Aktien(m) über n-Jahre dar.
Nun suche ich einen Befehl damit ich die Varianzen der Aktien für jedes Jahr bekomme, welche ja bekanntlich auf der Matrixdiagonalen liegen. Mit dem Befehl von diag() erhält man bekanntlich ja die Diagonale, aber wie funktioniert es, wenn mann die Diagonale aus der Matrix m*m möchte und das von 1 bis n?
varianz = diag();
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 15:54 So 29.07.2007 | Autor: | Blech |
> Ich suche einen Befehl für eine m*m*n Matrix. Die Matrix
> stellt die Kovarianzen der Aktien(m) über n-Jahre dar.
>
> Nun suche ich einen Befehl damit ich die Varianzen der
> Aktien für jedes Jahr bekomme, welche ja bekanntlich auf
> der Matrixdiagonalen liegen. Mit dem Befehl von diag()
> erhält man bekanntlich ja die Diagonale, aber wie
> funktioniert es, wenn mann die Diagonale aus der Matrix m*m
> möchte und das von 1 bis n?
>
> varianz = diag();
>
> Ich habe diese Frage in keinem Forum auf anderen
> Internetseiten gestellt.
Soweit ich Dich richtig verstehe, hast du eine 3 dimensionale Matrix aus n Kovarianzmatrizen und willst eine [mm]m\times n[/mm] Matrix mit den Diagonalen der Kovarianz als Spalten?
for i=1:n,
Varianz(:,i) = diag(M(:,:,i));
end
Gewinnt keine Schönheitspreise, aber sollte funktionieren, oder?
Vielleicht weiß jemand anders eine elegantere Lösung
|
|
|
|