Скажем, у меня есть массив ячеек (n X 1) векторов, A
, и массив ячеек векторов, содержащих индексы в A
, называемые B
.Я хочу извлечь массив ячеек, C
, такой, что C{i} = [A{B{i}}]
.
Другими словами, у меня есть массив ячеек массивов индексов, и я хочу извлечь матрицы, соответствующие конкатенациям векторовв A
индексируется каждым из этих массивов индексов.
for i = 1:length(B)
%# B{i} is an array of indices, C{i} is a matrix
C{i} = [ A{ B{i} } ];
end
Цикл эквивалентен:
C = cellfun(@(x)[A{x}],B,'UniformOutput',false); %# implicit for loop w/ closure
Могу ли я сделать это, используя только индексное выражение?Или, по крайней мере, без цикла?
Я думаю, что deal()
, возможно, должен быть вовлечен, но не может понять это.