我有如下数据:
49.6 46.1
49.65 46.3
50.1 47.03
50.2 47.06
51.35 46.027
51.36 46.20
我想根据第一列的特定范围找到两列的平均值。例如,在[49-50]的范围内,我应该计算第一列的平均值和第二列中相应值的平均值。在此示例中,子数组(仅限第一列)具有数字
49.6
49.65
将在[49-50]的范围内,所以我想找到它们的平均值和第二列中相应值的平均值。
范围就像49:1:100
。以下代码无法正常运行。
for i=49:1:100
meanWithinRange(i) = mean(data(i,1));
end
答案 0 :(得分:2)
我认为您正在寻找逻辑索引。
首先,为第1列的范围内值创建逻辑数组:
A=[49.6 46.1
49.65 46.3
50.1 47.03
50.2 47.06
51.35 46.027
51.36 46.20];
I = A(:,1)>=49 & A(:,1)<50;
我是一个逻辑列向量,对于范围内的行是true
。您可以使用它来索引所需的行:
>> A(I,:)
ans =
49.6000 46.1000
49.6500 46.3000
现在您可以简单地计算此结果的mean
:
>> mean(A(I,:))
ans =
49.6250 46.2000