1

假设我有一个 3xK 大小的值need_find = [1 3 4]和一个矩阵A。我想在need_findA 的相应行上找到 的值。如何在 matlab 中应用矢量化解决方案而不是遍历每一行?

对于预期的详细示例;

A = [1 3 4; 1 3 5; 3 4 5];
my_method_do_what_I_want(A,need_find);

方法返回

ans = [1;2;2] 
% so I find the index of each element of need_find at corresponding row at A

长话短说:在第 1 行搜索 1,在第 2 行搜索 3,在第 3 行搜索 4

4

1 回答 1

1

这是一种方法:

A = [1 3 4; 1 3 5; 3 4 5];
need_find = [1 3 4]
[~,idx] = find(bsxfun(@eq,A,need_find(:)))

返回

idx =

     1
     2
     2

如果您的行中有重复值或根本没有匹配项,则此简单的单行将不起作用A,但我只能以您的示例为例...

于 2013-08-21T22:29:26.107 回答