如何嵌套循环使整个循环重复 100 倍

How to Nest a Loop so the Entire Thing Repeats 100X

我有一个循环,我正在尝试创建另一个循环,但我不确定语法应该是什么。这是我的代码:

for (?)
    for i=1:6
        r(i)=normrnd(0,0.1*sy);
        y_new=A+B*x+r;
    end
    % estimate new A and B
    [mm,nn]=size(x); DoF=mm-2;
    x_mean=mean(x);
    y_mean=mean(y_new);
    xp=(x-x_mean);
    yp=(y_new-y_mean);
    num=sum(xp.*yp);
    dem=sum(xp.*xp);
    B_new=num/dem;
    A_new=y_mean-B_new*x_mean;
end

我不确定要在 for 循环中放入什么才能使其重复 100 倍。我假设我需要“for i=1:100”,但我不确定在循环中的哪个位置设置我的 x(i) 以获得预期的结果。我什至不确定我是否正确地将第一个循环嵌套在那里。我正在尝试使用 normrnd 创建一组 6 个新的 y 值,然后 运行 线性回归以生成新的 A 和 B(斜率和截距),然后我想重复整个过程 100X。

除非您有特殊原因不向量化您的 normrnd() 调用,否则您只需要一层 fors:

%sy,A,B,x initialized elsewhere
for i=1:100
    r=normrnd(0,0.1*sy,[6 1]);
    y_new=A+B*x+r;
    clear r;

    % estimate new A and B
    [mm,nn]=size(x);
    DoF=mm-2;
    x_mean=mean(x);
    y_mean=mean(y_new);
    xp=(x-x_mean);
    yp=(y_new-y_mean);
    num=sum(xp.*yp);
    dem=sum(xp.*xp);
    B_new=num/dem;
    A_new=y_mean-B_new*x_mean;
    %set B=B_new and A=A_new for the next iteration maybe?
end
clear i;