如果V = [3 11 20 31 40]和A=[1 2 3],我们可以做V(A(:))=[3 11 20]。
如果A是个细胞,我怎么能做到呢?
如果是A={[1 2 3],[2 5],[3 5]},我想要{[3 11 20],[11 40],[20 40]}
发布于 2015-01-08 22:25:06
将A转换为矩阵(有两种方法):
V = [3 11 20 31 40]
A=[1 2 3]
V(cell2mat(A))
V([A{:}])如果A是索引的单元格数组,请使用
cellfun(@(m) V(m),A,'UniformOutput',false)发布于 2015-01-08 22:25:15
使用V(cell2mat(A))=[3 11 20]或V([A{:}])=[3 11 20]
发布于 2015-01-08 22:41:09
但是如果A={12,3,2,5,3,5},我想要{311,20,11,40,2040}?
我不认为有办法正确地向量化这个问题,但您至少可以使用cellfun将其放到一行中。不会特别快,但至少它很简洁.差不多吧。
cellfun(@(x) V(x), A, 'UniformOutput', false)https://stackoverflow.com/questions/27850568
复制相似问题