[编辑]
说,我有一个由A
个单元格组成的单元格数组n
,每个单元格都是一个大小为(m,1)
的零向量。
示例:A是1x2单元阵列A = [100x1 double] [100x1 双]
如何在同一行和同一时间向每个单元格插入新值,而无需编写单独的代码行?我可以使用cellfun
这样做吗?
例如,如何使用新值{{1}替换第一个单元格的ith
行,使用新值m
和第二个单元格的ith
行,使用一行代码?
n
和m
可能是也可能不是相同的值。
答案 0 :(得分:0)
如注释中所述,您可以尝试使用其他选项(例如数组)来提高效率,但是作为问题的答案,您可以使用evalin函数并使用change_cell,例如,您可以将每个单元格的第二行内容更改为vals在一行代码中!:
A = {[1 2 3],[4 5 6]};
change_cell = @(rownum , vals) evalin(...
'base', ...
[...
'rownum =', int2str(rownum),';',...
'vals=[', num2str(vals),'];',...
'for i = 1:length(A);',...
'A{i}(rownum)=vals(i);',...
'end;'...
]);
change_cell(2, [6 8])