[問題] 矩陣中等間距位置取平均值的做法已回收

看板MATLAB作者時間15年前 (2010/04/21 15:49), 編輯推噓1(103)
留言4則, 3人參與, 最新討論串1/1
煩勞板上各位大神 假設今天我有一6*6的矩陣 a=[1 2 0 0 1 0 3 3 0 0 2 2 0 0 1 2 0 0 1 0 2 2 0 1 2 2 0 0 3 2 0 2 1 1 2 2] 我想把它寫成一個3*3的矩陣b 矩陣b有點類似將a等比例縮小 但矩陣b的值我希望是相對應a矩陣上方塊的平均值(或總和) 例如 b(1,1)=(a(1,1)+a(1,2)+a(2,1)+a(2,2))/4 b(2,1)=(a(1,3)+a(1,4)+a(2,3)+a(2,4))/4 b(2,2)=(a(3,3)+a(3,4)+a(4,3)+a(4,4))/4 使b=1/4*[9 0 5 1 7 1 6 2 9] 用imresize資訊流失過多 而我目前想的到的是使用for迴圈 但是由於處理的矩陣很大(1920*1200) 速度很慢 所以想請問一下有沒有什麼比較簡化的方式 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.76.81

04/21 15:58, , 1F
參考我寫的1047篇看看
04/21 15:58, 1F

04/21 16:04, , 2F
謝謝!!!
04/21 16:04, 2F

04/21 23:32, , 3F
ans=blkproc(a,[2 2],'sum(x(:))')
04/21 23:32, 3F

04/21 23:32, , 4F
區塊的平均就改成mean
04/21 23:32, 4F
文章代碼(AID): #1Bpgu4ER (MATLAB)