我有一个不规则大小的单元格数组 M,例如:
>> M
M =
[1x7 double]
[1x9 double]
[1x14 double]
[1x6 double]
我想将单元格的所有元素设置为零而不循环它们。我已经尝试过使用 deal,正如这里所建议的那样,对于单元格的所有数组都具有相同维度但没有成功的情况。
知道如何优雅地做到这一点,例如 cellfun 吗?预先感谢 ;)
这个怎么样:
MM = cellfun(@(c) zeros(size(c)), M, 'UniformOutput',false);
如果您只想将某些单元格“归零”,则可以应用仍然应用索引:
M(idx) = cellfun(@(c) zeros(size(c)), M(idx), 'UniformOutput',false);
for循环也不错:
for i=1:numel(M)
M{i}(:) = 0;
end
尝试:
M2 = cellfun(@(c)(zeros(size(c))), M, 'UniformOutput', false)