MATLAB: Find subscripts in a 3D matrix

3d matrixindexsubscript

I have a 3D matrix, called A, and I want to find the subscripts for all places where elements of vector B appear. The elements of B apper more than one time in the matrix A.
I tried it using function subs to obtain directly the susbsripts, but I obtained a result where many page numbers are wrong (it shows a higher number (5) than the existing pages (3)). Bellow the code:
A(:,:,1)=[1 2 ; 3 3 ; 5 7 ; 4 2];
A(:,:,2)=[9 1 ; 4 4 ; 9 2 ; 4 6];
A(:,:,3)=[2 4 ; 7 4 ; 3 1 ; 6 4];
B = [9 4 1];
[row,col,page] = ind2sub(size(A),find(A(:)==B))
Also I tried using function find to obtain the linear indexes to later convert them to subscripts; however, I only obtain the first place were the element is placed on the matrix:
n = arrayfun(@(x) find(A==x,1),B);
[row, col, page] = ind2sub(size(A), n);

Best Answer

A(:,:,1)=[1 2 ; 3 3 ; 5 7 ; 4 2];
A(:,:,2)=[9 1 ; 4 4 ; 9 2 ; 4 6];
A(:,:,3)=[2 4 ; 7 4 ; 3 1 ; 6 4];
B = [9 4 1];
[row,col,page] = ind2sub(size(A),find(ismember(A,B)))
row = 12×1
1 4 1 2 3 4 1 2 1 2
col = 12×1
1 1 1 1 1 1 2 2 2 2
page = 12×1
1 1 2 2 2 2 2 2 3 3