I have two arrays A,B. I want to find the index of every element of B in A. I'm sure that every element of B must appears in A twice. The code of mini case is as below.
A = [1 2 3 4 5 6 5 4 2 7];
B = [2 4 5];
result = zeros(length(B),2);
for i=1:length(B)
result(i,:) = find(A==B(i));
end
The A and B in practice is very large (8000000). It takes long time in this for loop way. Is there any way to improve the code?
I had tried to use ismember function. But it seems I could not bypass the find function.
[ia,ib] = ismember(A,B);
result = zeros(length(B),2);
for i=1:length(B)
result(i,:) = find(ib==i);
end
I know I could use parallel computing toolbox. I just want a more delicated coding way.
0 Comments
Sign in to comment.