编写循环或函数(简单)MATLAB

时间:2015-05-31 18:39:54

标签: matlab loops

我是Matlab的初学者用户,请你帮我解释如何将其编写为代码。 我的意见是:

port_returns - 196x1列向量

VaR - 标量

variance_portfolio - 标量

   port_returns=returns*weights';
    VaR=1.65*sqrt(variance_portfolio);

我想编写一个代码,该代码采用 port_returns值,小于VaR 值并对其进行平均。

有人可以帮我吗?

提前谢谢!

2 个答案:

答案 0 :(得分:1)

假设port_returns是一个数组(向量),您可以使用以下代码获取小于VaR的值:less_than_VaR = find(port_returns < VaR);然后使用{{对它们取平均值非常简单1}}

参考:

  1. Find Array Elements That Meet a Condition
  2. Average or mean value of array

答案 1 :(得分:1)

这应该可以解决问题:

sum(port_returns(port_returns<VaR))/length(port_returns(port_returns<VaR))

,其中

sum(port_returns(port_returns<VaR))

发现port_returns中的所有元素都小于VaR并将它们相加,

然后除以小于VaR的元素数:

port_returns(port_returns<VaR)