使用不同名称,大小和类型的变量预分配结构

时间:2015-04-25 11:41:22

标签: matlab matrix

我将在for循环中使用算法作为迭代循环。我知道有些计算可以完成一次,并且它们的结果可以用作for循环中算法的必要输入,因此这样就不需要在每次迭代中计算相同的内容。为此,我计算它们一次并将它们放在一个结构中。

我使用结构,因为我有许多变量要保留在for循环中使用,它们的名称和大小不同。我将它们放在具有相同名称的结构中,例如:

out.A = A;
out.myvector = myvector; 
out.s = s; 
out.Hx_l = Hx_l; 

等等。其中一些是矩阵,其中一些是立方体或具有第四维的变量,其中一些是细胞。

有没有办法预先分配这种结构?

1 个答案:

答案 0 :(得分:1)

您可以通过以下方式初始化结构:

out = struct('A',[],'myvector',[],'s',[],'Hx',[]);

之后分配变量时,将创建结构字段。通常内容不是预先初始化的。引用Loren

  

初始化struct的内容有多重要。的   当然这取决于你的具体情况,但因为每个领域都是自己的   MATLAB数组,不一定需要将它们全部初始化   在前面。然而关键是尝试不增长结构   本身或其任何内容递增。