在我的数据中,我想说我有两个向量:
column1 column2
40.0000 1.2000
41.0000 1.2000
42.0000 1.2000
43.0000 1.2000
44.0000 1.2000
45.0000 1.2000
46.0000 1.2000
47.0000 1.2000
48.0000 1.2000
49.0000 1.2000
50.0000 1.2000
其中column1
是温度,column2
是流速。
我想要的是确定当温度高于45摄氏度时条件的流速总和是多少。即在上述示例中column2
中的流量总和仅在column1
的温度大于45摄氏度时的条件下。
我该怎么做?
答案 0 :(得分:6)
sum(columns2(column1>45))
使用logical indexing!这样做的是,column1>45
创建了一个逻辑矩阵true
,column1
的值大于45
和false
。然后,可以使用此逻辑数组直接索引另一列。
如果您确实有2D矩阵而不是2个向量,只需使用第一列对第二列进行逻辑索引:
sum(data(data(:,1)>45),2)
答案 1 :(得分:1)
sum(columns2(column1>45))
:最好的方式和更紧凑的方式。
如果你想让“天真的方式”更像古典语言并且可以理解:
acc=0;
for ii=1:lenght(column1)
if column1(ii)>45
acc=acc+column2(ii);
end
end
答案 2 :(得分:0)
此代码应该有效:
sum(flowrate(temperature > 45))