matlab - 在 for 循环中查找分布范围内的平均值
问题描述
我有如下数据:
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
解决方案
我认为您正在寻找逻辑索引。
首先,为第 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;
I 是一个逻辑列向量,true
用于范围内的行。您可以使用它来索引您想要的行:
>> A(I,:)
ans =
49.6000 46.1000
49.6500 46.3000
所以现在你可以简单地计算mean
这个结果:
>> mean(A(I,:))
ans =
49.6250 46.2000
推荐阅读
- oracle - 如何通过从另一个表中选择随机行值来更新数据
- xslt-1.0 - 元素类型“xsl:stylesheet”必须以匹配的结束标签“”结束
- git - 如何修复“无法取消链接‘文件名’:资源繁忙
- java - 如何在没有时区计算的情况下将原始日期/时间存储到 MongoDb
- html - css ::-webkit-scrollbar-thumb 不能改变比例(渐变色)
- javascript - 如何从另一个位置加载 vue app.js
- c# - 需要使用 c# 实现 AWS S3 Bucket 文件上传。而文件大小没有限制
- c# - Sharepoint 日期转换
- r - 您可以使用 sapply 中的参数在 sapply 函数中应用 for 循环吗?
- tsql - 如何按列分组并忽略行内的 NULLS