MATLAB: How can i find specified numbers in an array without using for loop

MATLAB

I want to find places of specified values in an defined array but without using for loop since it really slows down my code.
This is just an example of what i have done using for loop,
a=[1 2 3];
b{1}=[1 5 7 9];
b{2}=[-2 0 2 ];
b{3}=[-6 3 9 12 18];
for i=1:length(a)
answer(i) = find(ismember(b{i},a(i)));
end
I just want to use matlabs built in function or something else instead of using for loop.

Best Answer

solution:
answer=cell2mat(arrayfun(@(x,a) find(ismember(x{:},a)),b,a,'Uni',false))