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

想象一下,我有一个单元阵列

A = {0, 1 ,2, 3, ...}

和indice矢量

I = [0, 1, 0, 1, 0, ...]

和价值观

V = [2, 3]

我想要类似的东西

A{I} = [A{I}; V]' = {0, [1 2], 2, [3 3], ....};

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

最佳答案 你可以使用cellfun

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

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

点赞