MATLAB: Filter values in an array based on some condition

filter

Given two arrays A and B. A contains some data belonging to 10 different class. B(i,1) gives the index of class stored in A(:,:,i). How to filter values given in A based on the classes given in B.
size(A) = 28, 28, 60000
size(B) = 60000,1
B(i, 1) belongs to 1 to 10.

Best Answer

Suppose you want to seperate values belonging to class 1 in B.
A; % 28x28x60000
B; % 60000x1
idx = B==1;
A_1s = A(:,:,idx)
To seperate all labels
A_seperated = cell(1, 10);
for i = 1:numel(A_seperated)
A_seperated{i} = A(:,:,B==i);
end
It will output a cell array.