我有资产收益矩阵(t * n)和资产权重向量(1 * n),t是n资产的obs数。如果资产收益矩阵是r(i)和资产权重向量bw(i),我想要求和(r(i)* w(i)),i = 1:n是* 1矩阵。我可以在MATLAB中计算它吗?
示例:
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
然后我想要这个矩阵:
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)=...
感谢
答案 0 :(得分:0)
您可以简单地将x
乘以w
转置。请注意,.'
是转置,而不是'
。所以,你想要的只是:
x * w.'
ans =
0.1740
0.1320
0.1680
0.1660
否则,如果您想练习bsxfun
:
使用bsxfun
为每列提取x
和w
的产品,并使用sum(.., 2)
对第二维进行求和,如下所示:
sum(bsxfun(@times, x, w),2)
ans =
0.1740
0.1320
0.1680
0.1660