Say I have a cell array of (n X 1) vectors, A
, and a cell array of vectors containing indices into A
, called B
. I wish to extract a cell array, C
, such that C{i} = [A{B{i}}]
.
In other words, I have a cell array of arrays of indices, and I want to pull out the matrices corresponding to the concatenations of the vectors in A
indexed by each of those arrays of indices.
for i = 1:length(B)
%# B{i} is an array of indices, C{i} is a matrix
C{i} = [ A{ B{i} } ];
end
The loop is equivalent to:
C = cellfun(@(x)[A{x}],B,'UniformOutput',false); %# implicit for loop w/ closure
Can I do that using an indexing expression alone? Or at least without the loop?
I think deal()
might have to be involved but can't figure it out.