逻辑索引和从另一个数组中减去

时间:2014-03-14 09:20:23

标签: matlab

我有一个名为forecast_growth的数组。我有另外两个数组,一个是称为ci_upper&的上限值的置信区间。最后一个数组是置信区间ci_lower。所有数组都是310x1

我想要做的是forecast_growth数组中的值低于ci_lower数组中相应值的位置找到增长值和下限之间的差异并将其返回到新值阵列。

到目前为止,我在下面的行中返回的所有值都小于ci_lower,这不是我想要的。

obs_outside_ci_lower = forecast_growth(forecast_growth < ci_lower);

更新 - 添加了一些数据作为示例

forecast_growth     ci_upper   ci_lower     rows I would like returned  values I would like returned
5                   8          3
9                   10         4
3                   7          4            Yes                         (4-3) = 1
5                   12         7            Yes                         (7-5) = 2
6                   9          4

所以上面我想数组会给我两个值。预测增长低于ci_lower限制的两个值。我希望为这两行返回的实际值是ci_lower值减去预测增长值。

1 个答案:

答案 0 :(得分:1)

这就是你所追求的:

ind = forecast_growth < ci_lower;
ci_lower(ind) - forecast_growth(ind)

请注意,ind基本上是您的“我想要返回的行”列。