将值附加到单元格数组中的多个单元格

时间:2014-07-21 08:01:42

标签: matlab

想象一下,我有一个单元格数组

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], ....};

也就是说,我想一次向单元格数组的某些单元格附加几个值。我怎样才能最优雅/最有效率地做到这一点? :)

1 个答案:

答案 0 :(得分:2)

您可以使用cellfun

A(I==1) = cellfun( @(x,y) [x y], A(I==1), num2cell(V), 'UniformOutput', 0 );

请注意使用常规下标(使用()而不是{})来使用I==1索引所选的单元格元素。另请注意,V作为单元格数组(使用num2cell)传递,而不是作为常规数组传递。