使用索引元胞数组索引元胞数组的内容
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)
问题是:
我有一个单元格数组 (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)