【发布时间】:2016-02-09 21:40:15
【问题描述】:
我有一些值存储在矩阵中,例如
Matrix = [1,4,6]
还有一个元胞数组,如:
CellArray{1} = [0,0,1,0]
...
CellArray{4} = [0,0,0,0,0,0,0,1]
...
CellArray{6} = [0,0,1,1,1,0]
对于 CellArray 中矩阵的每个元素,即 CellArray{Matrix(1:end)},我想用零替换那些元素。到目前为止,我已经想到了:
[Output] = cellfun(@(x) subs(x,1,0),{CellArray{Matrix}},'UniformOutput',false)
虽然,输出不是我想要的......
【问题讨论】:
-
subs不是你想的那样,试试subs([2,3,4],2,1)。您正在做的事情可能会起作用,但我不确定匿名函数将如何为您完成替换 -
@AndrasDeak,我认为就像在您的示例数组中一样,所有 2 都被替换为 1,结果是
[1,3,4] -
@AndrasDeak 2015b :)
-
如果我理解正确的话,您应该可以使用
@(x) double(subs(x,1,0))转换为数值数组。 -
它更改为符号,因为它是一个符号函数,旨在处理符号数组。它适用于纯数字数组(正如您所见,它不适用于我),这是一个小奇迹。这是对该函数的强烈意外使用,因此您应该期待一些奇怪的事情。
标签: arrays matlab substitution cell-array