我知道cellfun可以应用于整个单元阵列并理解其语法。但是,是否可以将cellfun仅应用于单元数组中的一列而不会影响其他列?
答案 0 :(得分:3)
正如用户1543042和它的魔术在评论中所说,您可以使用':'将单元格功能应用于一列,但您想添加一个分配步骤。此外,如果您希望单元格函数返回单元格数组,则需要标记非均匀输出。所以,你最终得到:
C(:,i) = cellfun(@foo, C(:,i), 'UniformOutput', false)
要查看实际操作示例:
>> C = {1,2,3;4 5 6};
>> C
C =
[1] [2] [3]
[4] [5] [6]
>> size(C)
ans =
2 3
>> cellfun(@(x)x.^2,C(:,1))
ans =
1
16
>> C(:,1) = cellfun(@(x)x.^2,C(:,1))
Conversion to cell from double is not possible.
>> C(:,1) = cellfun(@(x)x.^2,C(:,1),'UniformOutput',false)
C =
[ 1] [2] [3]
[16] [5] [6]
>>