[問題] 如何找出A矩陣中各元素在B矩陣中的位置?已回收

看板MATLAB作者 (qqq)時間16年前 (2009/08/13 13:33), 編輯推噓3(304)
留言7則, 2人參與, 最新討論串1/1
想請教各位大大... 現有兩個矩陣,A(3x3), B(30x30) 想找出在B中與A矩陣中各元素的值差距最小的值跟位置 如果已知A與B的各元素的值都不重複,用向量方式該如何寫? 用迴圈硬拼沒問題,但是實際矩陣的大小非常大,好慢好慢 謝謝大大的幫忙 附上原始碼,請各位大大修改看能否增加執行速度 a=[1 2 3;4 5 6;7 8 9]; b=[1 2 3 4 5;6 7 8 9 10;11 12 13 14 15;16 17 18 19 20;21 22 23 24 25]; for i=1:size(a,1) for j=1:size(a,2) [x,y]=min(abs(b(:)-a(i,j))); d(i,j)=b(y); end end -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.117.91.22 ※ 編輯: agle 來自: 140.117.91.22 (08/13 17:15)

08/13 17:43, , 1F
實際的a b 維度有多大
08/13 17:43, 1F

08/13 18:44, , 2F
a約為500x500,b約為5000x5000,謝謝
08/13 18:44, 2F

08/13 19:03, , 3F
upper=min([max(a(:)) max(b(:))])
08/13 19:03, 3F

08/13 19:03, , 4F
lower=max([min(a(:)) min(b(:))])
08/13 19:03, 4F

08/13 19:05, , 5F
把a跟b介在low跟upp的值挑出來 答案只會在這裡面中
08/13 19:05, 5F

08/13 19:09, , 6F
不用整個a 跟 b 去找 維度太大了
08/13 19:09, 6F

08/14 17:51, , 7F
真是個減少運算量的好方法,謝謝大大的幫忙!
08/14 17:51, 7F
文章代碼(AID): #1AWwMj-p (MATLAB)
文章代碼(AID): #1AWwMj-p (MATLAB)