预分配

优质
小牛编辑
137浏览
2023-12-01

若一条代码不能向量化,你可以通过预分配任何输出结果已保存其中的向量或数组以加快for 循环。例如,这个代码用zeros函数把for循环产生的向量预分配。这使得for循环的执行显著加快。

    r = zeros(32,1);
    for n = 1:32
        r(n) = rank(magic(n));
    end
    

上例中若没有使用预分配,MATLAB的注释器利用每次循环扩大r向量。向量预分配排除了该步骤使执行加快。