我将在for
循环中使用算法作为迭代循环。我知道有些计算可以完成一次,并且它们的结果可以用作for
循环中算法的必要输入,因此这样就不需要在每次迭代中计算相同的内容。为此,我计算它们一次并将它们放在一个结构中。
我使用结构,因为我有许多变量要保留在for
循环中使用,它们的名称和大小不同。我将它们放在具有相同名称的结构中,例如:
out.A = A;
out.myvector = myvector;
out.s = s;
out.Hx_l = Hx_l;
等等。其中一些是矩阵,其中一些是立方体或具有第四维的变量,其中一些是细胞。
有没有办法预先分配这种结构?
答案 0 :(得分:1)
您可以通过以下方式初始化结构:
out = struct('A',[],'myvector',[],'s',[],'Hx',[]);
之后分配变量时,将创建结构字段。通常内容不是预先初始化的。引用Loren:
初始化struct的内容有多重要。的 当然这取决于你的具体情况,但因为每个领域都是自己的 MATLAB数组,不一定需要将它们全部初始化 在前面。然而关键是尝试不增长结构 本身或其任何内容递增。