[心得] 二維矩陣搜尋最大或最小值(含絕對位置) …已回收
%% 二維矩陣 搜尋最大或者最小值(b_var),包含絕對位置(d_1,d_2 )
% 2011/10/02 建立
% a_data 範例樣本二維矩陣為 M x N 尺寸大小
% b_var 矩陣內最小值的元素
% b_loc 矩陣尺寸大小經過轉換後,最小值元素的相對位置
% d_1 代表為最小值元素,在原本二維矩陣的位置 d_1
% d_2 代表為最小值元素,在原本二維矩陣的位置 d_2
%
% 原理是在搜尋最大或者最小時,先把二維矩陣轉換成一維向量,a_data(1:end)丟給
% min指令就會當作一維向量搜尋,會得到最小值(b_var)與相對位置(b_loc),接著用
% 到商數與餘數觀念。將相對位置除以M,就會得到商數(d_2)與餘數(d_1)。
% 得到商餘數後 還不是正確的絕對位置,要進行修正。
% 雖然知道怎麼作,但不會表達。
% 主要修正為下兩行
% d_1(d_1 == 0 ) =size(a_data,1);
% d_2(d_2 < size(a_data,2) ) =d_2+1;
%
% 不保證能用有包含虛數部分。
a_data =[1 2 3 4
5 6 7 8
9 10 11 12
];
[b_var,b_loc] =min(a_data(1:end)); % 這裡可以改成要搜尋最大或者最小值
d_1 =rem(b_loc,size(a_data,1)); %求餘數
d_2 =fix(b_loc/size(a_data,1)); %求商數
d_1(d_1 == 0 ) =size(a_data,1);
d_2(d_2 < size(a_data,2) ) =d_2+1;
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.127.6.148
→
10/02 16:01, , 1F
10/02 16:01, 1F
→
10/02 16:04, , 2F
10/02 16:04, 2F
※ 編輯: s123123sam 來自: 140.127.6.148 (10/02 16:06)
推
10/02 16:40, , 3F
10/02 16:40, 3F
→
10/02 20:04, , 4F
10/02 20:04, 4F
→
10/02 20:19, , 5F
10/02 20:19, 5F
→
10/02 20:21, , 6F
10/02 20:21, 6F