[問題] mean var 計算 (sumif)

看板MATLAB作者 (dogbear)時間13年前 (2012/08/06 17:24), 編輯推噓0(003)
留言3則, 3人參與, 最新討論串1/1
請問 我要計算平均值、變異數 但手上資料有缺測資料(數值為0),要跳過0去計算平均值、標準差 (如同 excel的 sumif averageif語法) mon矩陣如下 1月 1 0 3 2月 2 1 0 3月 0 1 5 我要計算1月的月平均,如果用 mean(mon,2),就會變成 1.333 而我要的是 4/2=2 我目前想到是寫迴圈,把[1 0 3] 取出來去計算 for i=1:3 ans(i,1)=mean(mon((mon>0),2) end 有更好的方法嗎?? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.190.65

08/06 20:43, , 1F
硬是不想用for迴圈的話... 把0設為NaN 再用nanmean
08/06 20:43, 1F

08/06 23:53, , 2F
sum(mon, 2)./sum(mon~=0, 2)
08/06 23:53, 2F

08/07 02:41, , 3F
我明天試試看 謝謝兩位
08/07 02:41, 3F
文章代碼(AID): #1G7urU_W (MATLAB)