如何在matlab中通过多个索引查找一个项目

How to lookup an item by multiple indexes in matlab

我有一个 n+1 列矩阵。 我想要一个函数 mySearch(idx1,idx2...,idxn) returns 行中的第 n+1 列,其前 n 个元素等于 idx1...idxn

下一步,我希望 mySearch 通过一些简单的插值 return 一个最接近索引的值。

有没有简单的方法来做到这一点?

谢谢

使用函数find - http://www.mathworks.com/help/matlab/ref/find.html

例子

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

这为您提供了所需点在矩阵中的位置。这样,您还可以根据您的条件找到接近他们位置的位置

使用norm确定距离,min获得最接近的值:

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

上面idx[idx1, idx2, ..., idxn]的向量。