2016-04-22 19 views
2

私はn + 1列の行列を持っています。 最初のn個の要素がidx1 ... idxnと等しい行のn + 1列目を返す関数mySearch(idx1、idx2 ...、idxn)が必要ですmatlabで複数のインデックスで項目を検索する方法

次のステップでは、mySearchが必要です単純な補間によって、インデックスに最も近い値を返すことができます。

これを行う簡単な方法はありますか?

おかげ

答えて

1

あなたの基準に応じて、その位置に近い位置を見つけることができます。idx上記

function v=mySearch(idx, M) 
n=length(idx); 
d=[] 
for row = M' 
    d=[d; norm(row(1:n)-idx) ] 
end 
[~, I]=min(d); 
v = M(I,n+1); 
end function 

[idx1, idx2, ..., idxn]のベクトルです。

0

利用機能find - http://www.mathworks.com/help/matlab/ref/find.html

[rol,col]=find(matrix(idx1==SOMETHING)) 

これは、あなたがしたいポイントのマトリックス内の位置を与えます。このように、あなたはまた、最も近い値を得るために、距離やminを決定するために使用norm

関連する問題