私はn + 1列の行列を持っています。 最初のn個の要素がidx1 ... idxnと等しい行のn + 1列目を返す関数mySearch(idx1、idx2 ...、idxn)が必要ですmatlabで複数のインデックスで項目を検索する方法
次のステップでは、mySearchが必要です単純な補間によって、インデックスに最も近い値を返すことができます。
これを行う簡単な方法はありますか?
おかげ
私はn + 1列の行列を持っています。 最初のn個の要素がidx1 ... idxnと等しい行のn + 1列目を返す関数mySearch(idx1、idx2 ...、idxn)が必要ですmatlabで複数のインデックスで項目を検索する方法
次のステップでは、mySearchが必要です単純な補間によって、インデックスに最も近い値を返すことができます。
これを行う簡単な方法はありますか?
おかげ
あなたの基準に応じて、その位置に近い位置を見つけることができます。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]
のベクトルです。
利用機能find
- http://www.mathworks.com/help/matlab/ref/find.html
例
[rol,col]=find(matrix(idx1==SOMETHING))
これは、あなたがしたいポイントのマトリックス内の位置を与えます。このように、あなたはまた、最も近い値を得るために、距離やmin
を決定するために使用norm