如何在MATLAB中启动循环运行多次迭代

时间:2015-03-07 21:53:09

标签: matlab for-loop nested vectorization

对于一天中多个愚蠢的问题再次抱歉。我是新手,不懂编程。我问了一个简单的问题,关于for循环这里,已经整理出来了:

How to divide two different array in for loop matlab

我需要在多次迭代中启动此for循环,比如10 000 ,以获得输出,其中结果(1:15)./ result(16:30)每次迭代都会有所不同。意思是,对于每次迭代,结果(u)都会变化。而且我仍然需要在每次迭代时显示 resultX(u)(位置)输出。

我用for循环尝试了这个。但它继续为每次迭代给我相同的结果。我不知道如何对此进行矢量化,这是最糟糕的。拜托,我需要帮助。

从评论中抓取其他信息

我需要一个矩阵输出(row = iteration, column=u)

我希望每次迭代都有u值的变化,这就是我为每个

提示下面的代码的原因
u:acx = rand();
newacx = round(acx*100); 
if (newacx < 10 || newacx == 10)
    [valueone,positionone] = randomFunction(a); 
elseif (newacx > 10) 
    [valueone,positionone] = max(start(1,:));
end

1 个答案:

答案 0 :(得分:1)

怎么样?
NUM_ITER = 10000;
out = zeros(NUM_ITER, 15);

for iter = 1:NUM_ITER
    start=zeros(2,15);
    a=[-12 10 -5 3 21 19 3 7 17 21];

    for u = 1:30  
        acx = rand();
        newacx = round(acx*100);

        if (newacx < 10 || newacx == 10)
           [valueone,positionone] = randomFunction(a); 
        elseif (newacx > 10)
           [valueone,positionone] = max(start(1,:));
        end

        result(u) = valueone;
        resultX(u)= positionone;
    end

    u = result(1:15)./result(16:30);

    out(iter,:) = u;
end

out         % Results of running NUM_ITER times
out(1,:)    % Results of first iteration
out(2,:)    % Results of second iteration

注意我真的不知道你在这个剧本中做了什么,但如果我理解你的问题,out应该有你正在寻找的东西 - 它是一个大小为(NUM_ITER x 15)的矩阵,其中每一行包含该迭代的u值。