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

4

假设我有一个单元数组

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

和索引向量
I = [0, 1, 0, 1, 0, ...]

以及数值

V = [2, 3]

我希望你能够提供类似以下内容的东西:

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

也就是说,我希望一次性向一个单元数组的多个单元格附加多个值。如何最优雅地/高效地实现? :)

1个回答

2
你可以使用cellfun函数。
A(I==1) = cellfun( @(x,y) [x y], A(I==1), num2cell(V), 'UniformOutput', 0 );

注意使用普通下标(使用()而不是{})来索引选定的单元格元素,使用I==1。还要注意,V被传递为一个单元数组(使用num2cell),而不是一个普通数组。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接