我正在使用matlab,并希望根据vector1的值来选择向量2上的值。
假设载体1低于当前温度,载体2呈现流速。 我想要的是根据流动温度选择流速值。例如,我想知道在一定温度范围内(即54-56细胞)抽取了多少水(vector2)。换句话说,我想找出基于vector1上某些温度范围绘制了多少体积(vector2上的流速)(即2摄氏度温度范围:44-46; 46-48; 48-50; 50 -52; 52-54; 54-56)。
vec1 vec2
55.5 1.3
55.5 1.3
54.3 1.2
54.2 1.1
55.5 0
55.5 0
55.5 1.2
50.4 0.74
51.4 0.75
50.5 0.93
45.6 0
45.6 0
45.6 1.47
45.6 1.48
45.6 0.75
任何建议都将不胜感激。
亲切的问候, D马里尼
答案 0 :(得分:1)
首先,您可以使用histc
将数据分类为类别,然后您可以使用accumarray
根据每个创建的类别应用函数(在这种情况下为总和):
data = [55.5 1.3
55.5 1.3
54.3 1.2
54.2 1.1
55.5 0
55.5 0
55.5 1.2
50.4 0.74
51.4 0.75
50.5 0.93
45.6 0
45.6 0
45.6 1.47
45.6 1.48
45.6 0.75];
[~,cat] = histc(data(:,1),44:2:56);
sumcat = accumarray(cat,data(:,2)); %by default the applied function is a sum, so no need to specify the function.
<强>结果:强>
sumcat =
3.7000 %[44-46[ 46 not included.
0 %[46-48[
0 %...
2.4200
0
6.1000