function [res1] = obtemDadosPrec()
res1 = [
1,2001,1,2,0.00;
1,2001,1,5,5.33;
2,2001,1,5,4.57;
3,2001,1,5,5.33;
4,2001,1,5,5.59;
5,2001,1,5,4.32;
2,2001,1,13,0.00;
3,2001,1,13,0.00;
4,2001,1,13,0.00;
3,2001,1,30,30.73;
2,2001,2,1,1.02;
3,2001,2,1,1.52;
4,2001,2,1,1.78;
5,2001,2,1,1.27;
1,2001,2,2,1.78;
2,2001,2,2,1.27;
3,2001,2,2,1.78;
4,2001,2,2,2.03;
5,2001,2,2,1.78;
1,2001,3,4,18.03;
3,2001,3,4,15.75;
5,2001,3,4,17.53;
1,2001,3,5,13.46;
2,2001,3,5,12.19;
3,2001,3,5,11.94;
4,2001,3,5,9.65;
5,2001,3,5,10.92;
2,2001,4,30,0.00;
4,2001,4,30,0.00];
format short g
return
endfunction
所以在这个矩阵中,第一列只是我们测量降水量的站点,第二列是年份,第三列是月份,第四列是白天,第五列是降水量。 我想在另一个文件中做的是调用这个矩阵并进行以下微积分,在第1个月我想做所有日子的平均值,例如:
在第1天第5天我有5个值5.33,4.57,5.33,5.59,4.32,所以我会这样做
(5.33 + 4.57 + 5.33 + 5.59 + 4.32)/ 5 = 5.028
而且我想在所有的日子里这样做,当我有所有的日子时,我会把它们全部加在一起,以了解当月的降水量,并在4个月内完成。
我有点卡在那里,如果你能帮助我,我会很感激,非常感谢!
答案 0 :(得分:1)
首先,获取你的数组
>> Result = obtemDadosPrec();
然后得到一个逻辑数组,其中对应于month == 1的行为真(即1)而所有其他行为false(即0)
>> month1Indices = Result(:,3) == 1;
使用此逻辑数组执行logical indexing并仅隔离'true'行。
>> month1Rows = Result(month1Indices, :);
重复相同的程序以隔离'第5天'
>> day5Indices = month1Rows(:,4) == 5;
>> day5Rows = month1Rows(day5Indices , :);
计算第5列的平均值。
>> mean(day5Rows(:,5))
ans = 5.028