2016-08-29 3 views
0

Ich habe Asset-Return-Matrix (t * n) und Asset-Gewicht-Vektor (1 * n), dass t ist die Anzahl der Obs für n Asset.wenn Asset-Return-Matrix be r (i) und Asset-Gewicht-Vektor bw (i), i will sum (r (i) * w (i)), i = 1: n das ist bei * 1 matrix.wie kann ich es in MATLAB berechnen?Wie berechnet man Portfolio Return-Serie in Matlab?

Beispiel:

x = 

0.1400 0.2100 0.1800 
0.1100 0.1200 0.1500 
0.1700 0.1600 0.1700 
0.1800 0.2100 0.1400 

w = 

0.3000 0.2000 0.5000  

dann will ich diese Matrix:

R(1,1)=(0.14*0.3)+(0.21*0.2)+(0.18*0.5)=? 

R(2,1)=(0.11*0.3)+(0.12*0.2)+(0.15*0.5)=? 

R(3,1)=... 

R(4,1)=... 

dank

Antwort

0

Sie können einfach mehrfach x von w umgesetzt. Beachten Sie, dass .' die Transponierte ist, nicht . Also, was Sie wollen, ist einfach:

x * w.'  
ans = 

    0.1740 
    0.1320 
    0.1680 
    0.1660 

Andernfalls, wenn Sie bsxfun üben möchten:

Verwenden bsxfun nehmen das Produkt von x und w für jede Spalte und sum(.., 2) zusammenzufassen entlang die zweite Dimension, wie folgt:

sum(bsxfun(@times, x, w),2) 
ans = 

    0.1740 
    0.1320 
    0.1680 
    0.1660