MATLAB: How to see which cell that the components of a vector land in, in a cell array?

arraycellcell arraycontainsequencevector

Say I have a cell array, A, and a vector, B. I want to figure out which cell each component of the vector lands in. For example.
A = { [1 5 6] [15 3 10 7] [13 14 2 8] }
B = [1 10 5 2]
Output = [1 2 1 3]
Also, not all cells in A are equal in size, some are however. The numbers contained in B will always be found somewhere in A, but not the other way around.

Best Answer

c = arrayfun(@(y)arrayfun(@(x)(any(B(x)==A{y}).*y),1:numel(B),'un',0),1:numel(A),'un',0);
Output = sum(cell2mat(cat(1,c{:})))