如何根据vector1

时间:2017-07-14 10:57:59

标签: matlab

我正在使用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马里尼

1 个答案:

答案 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