查找與矩陣相同的值最接近的元素考慮下面的矩陣:在MATLAB
0 3 0 1 1 4
1 3 5 6 7 0
2 5 6 2 6 1
4 4 2 1 5 1
當我指定一個元素的位置,我想獲得具有相同值最接近的元素的位置。例如,如果我選擇第3行第3列中的元素,即'6',我希望獲得最接近'6'的行和列值,在這種情況下,它位於第2行第4列。同樣,對於第4行第4列中的'1',最近的是在第4行,第5行和第4行第6列,其中任何一個都很好。我查了'bwdist'和'找到'的功能,但他們沒有給出正確的結果。任何人都可以幫助我解決這個問題?
編輯:
a1 = randi(10,10,5);
disp(a1);
%// For an array of search numbers
search_array = a1(4,5);
disp(search_array);
%%// Find the linear index of the location
[~,ind] = min(abs(bsxfun(@minus,a1(:),search_array')));%//'
%%// Convert the linear index into row and column numbers
[x,y] = ind2sub(size(a1),ind)
「最低」功能將不會在這裏工作爲其中所需的元素存在將被轉換到零,並且每個位置「分鐘」掃描矩陣行方向,並給出第一zero.The以下的位置是這樣的情況下:
2 6 10 9 2
6 6 7 5 3
1 8 5 2 1
8 1 9 5 5
9 7 6 4 3
10 6 6 5 3
10 2 7 9 5
6 10 4 5 2
3 6 3 4 5
2 5 6 4 8
即使有一個「5」旁邊的「5」排在4,第5欄,「5」在第10行,選擇第2列。
看[這裏](http://stackoverflow.com/questions/22609192/find-the-closest-value-in-a-matrix-matlab)我覺得這回答非常好您的問題:) – 2015-02-07 04:59:58
對不起,無論我搜索多少,我都找不到這個!非常感謝!! – Matte 2015-02-07 05:09:45
肯定沒問題!如果這回答你的問題,我認爲你可以刪除它,因爲它會重複。謝謝,祝你好運! – 2015-02-07 05:10:25