将Matrix迭代为单元格数组

时间:2014-06-05 00:20:21

标签: matlab matrix cell-array

有没有办法可以编写一个for循环,将一个给定数量的矩阵添加到单元格数组中。

`C1 = [];`

所以不必像以下那样写出所有人:

`cell = {}
cell = [cell C1];
cell = [cell C2];
cell = [cell C3];
cell = [cell C4];`

已知C的数量。

1 个答案:

答案 0 :(得分:2)

如果已知C矩阵的数量,那么您可以编写for循环来执行此操作。在循环的每次迭代中,可以构建命令字符串然后进行评估:

N = 4;
cellArray = cell(N,1);  % pre-allocate memory for the array
for i=1:N

    % build the command string
    cmd = ['cellArray{i} = C' num2str(i) ';'];

    % evaluate the string
    eval(cmd);

end

您可以单步执行代码,看看cmd在每次迭代时的样子。请注意,一些开发人员对使用eval命令有些担忧。由于您正在构建要在每次迭代中运行的命令,因此它可以使调试(如果出现错误)更加困难。