使用索引元胞数组索引元胞数组的内容

Indexing content of cell array using cell array of indices

问题是: 我有一个单元格数组 (MyCellArray) 和一个相同大小的索引单元格数组 (IdxCellArray),其中每个单元格包含 MyCellArray.[=28= 对应单元格的索引] 有没有办法获得由 (IdxCellArray) 索引的 MyCellArray 元素的元胞数组输出?
MyCellArray{IdxCellArray} 无效。

准确地说,假设两种情况:在第一种情况下,我有一个具有以下结构的元胞数组:

MyCellArray: 2x3
[50x1] [50x1] [50x1]
[76x1] [76x1] [76x1]

IdxCellArray: 2x3
[20x1] [20x1] [20x1]
[21x1] [21x1] [21x1]

其中每个 IdxCellArray 行标记相同的索引。即 repmat(IdxCellArray(:,1),1,3) 会 return 恰好 IdxCellArray。 对于每个单元格包含不同向量的 MyCellArray 情况并非如此 对于第二种情况,我的数组有更通用的结构:

MyCellArray: 2x3
[53x1] [50x1] [52x1]
[75x1] [71x1] [78x1]

IdxCellArray: 2x3
[11x1] [10x1] [21x1]
[15x1] [18x1] [22x1]

你需要cellfun:

out = cellfun(@(x,y) x(y), MyCellArray, IdxCellArray, 'uni', 0)