MATLAB:使用数组的单元数组索引单元数组并返回单元数组

rev*_*nge 6 indexing matlab cell-array

假设我有一个(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
Run Code Online (Sandbox Code Playgroud)

循环相当于:

C = cellfun(@(x)[A{x}],B,'UniformOutput',false); %# implicit for loop w/ closure
Run Code Online (Sandbox Code Playgroud)

我可以单独使用索引表达式吗?或者至少没有循环?
我想deal()可能必须参与,但无法弄明白.

gno*_*ice 6

以下是两种替代解决方案:

最终,我会根据速度和可读性决定使用什么解决方案,这实际上可能是基于for循环的解决方案.