如何在矩阵的每一行使用不同值的find函数?

时间:2013-08-21 22:08:41

标签: matlab matrix vectorization

假设我的值need_find = [1 3 4]和矩阵A的大小为3xK。我想在其对应的A行中找到need_find的值。如何在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

1 个答案:

答案 0 :(得分: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的行中有重复的值,或者根本没有匹配,那么这个简单的单行将不起作用,但我只能按你的例子​​...