Re: [問題] 取矩陣內位置滿足特定條件的index已回收

看板MATLAB作者 (老頭)時間17年前 (2008/11/28 14:42), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/3 (看更多)
※ 引述《kunlin999 (max)》之銘言: : ※ 引述《ericabab (ㄍㄠˊ)》之銘言: : : (要做影像處理的filter用的) : : 請問假設現在有一個矩陣 : : 想要取出以中間點為原點,半徑為r的圓上那些點 : : 要怎麼寫呢,謝謝 : 假設A是I*J矩陣 : B是收集滿足條件的元素之集合 : B=[]; : for i=1:I : for j=1:J : if((i-I/2)^2+(j-J/2)^2<=r^2) : B=[B,A(i,j)]; : end : end : end : B 不知道r是不是定值 不過觀念上應該是可以造出一個[ 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 1 1 1 1 1 0 1 1 1 1 1 1 1 : : 0 0 0 1 0 0 0 ] 這樣一個矩陣B 然後取nonzeros(A.*B) (A和B內積) 就可以得到所有想要的element 不過當r、I、J都不是定值時 這個B似乎也得用for來造 降我就很懷疑執行速度會不會比較快就是了...XD -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.13.128
文章代碼(AID): #19BvBecf (MATLAB)
文章代碼(AID): #19BvBecf (MATLAB)