将新值插入单元格数组[MATLAB]

时间:2016-09-01 14:40:15

标签: matlab

[编辑]

说,我有一个由A个单元格组成的单元格数组n,每个单元格都是一个大小为(m,1)的零向量。

  

示例:A是1x2单元阵列A = [100x1 double] [100x1   双]

如何在同一行和同一时间向每个单元格插入新值,而无需编写单独的代码行?我可以使用cellfun这样做吗?

例如,如何使用新值{{1}替换第一个单元格的ith行,使用新值m和第二个单元格的ith行,使用一行代码?

nm可能是也可能不是相同的值。

1 个答案:

答案 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])