想象一下,我有一个单元格数组
A = {0, 1 ,2, 3, ...}
和indice vector
I = [0, 1, 0, 1, 0, ...]
和值
V = [2, 3]
我想要像
这样的东西A{I} = [A{I}; V]' = {0, [1 2], 2, [3 3], ....};
也就是说,我想一次向单元格数组的某些单元格附加几个值。我怎样才能最优雅/最有效率地做到这一点? :)
答案 0 :(得分:2)
您可以使用cellfun
A(I==1) = cellfun( @(x,y) [x y], A(I==1), num2cell(V), 'UniformOutput', 0 );
请注意使用常规下标(使用()
而不是{}
)来使用I==1
索引所选的单元格元素。另请注意,V
作为单元格数组(使用num2cell
)传递,而不是作为常规数组传递。