【问题标题】:Matlab display of iterations迭代的Matlab显示
【发布时间】:2017-04-20 09:09:20
【问题描述】:

目前我正在使用以下代码:

for Ereignis = 1:(iteration)
    Status = 1;
    i = 0;
    Weg = [];
    Weg(1) = 1;
    Belohnung = [];
    Gewichtung = 0;
    while Status ~= ZielStatus
        while Gewichtung == 0
            Aktion = random('unid',ZielStatus);
            Gewichtung = q(Status,Aktion);
        end
        Status = Aktion;
        i = i +1;           
        Weg(i+1) = Status;
        Belohnung(i) = Gewichtung;
        Gewichtung = 0;
        if i >= 150
            break
        end
    end

这给了我 1000 次输出迭代。

如果我用

显示它们
disp(Weg)

我确实得到了很多输出......现在我只想显示每 100 次迭代......

我正在考虑将输出保存到一个数组中并显示每 100 个创建的数组,有什么帮助吗?

【问题讨论】:

    标签: arrays matlab display


    【解决方案1】:

    仅当i 除以 100 得到余数 0 时才显示:

    if ~rem(i, 100), disp(Weg(i)), end
    

    ...而不是每次都显示整个 Weg 数组,只显示当前 (ith) 值。

    【讨论】:

    • 您好,它显示的金额与以前完全相同:/我使用的是 2016a
    • 哦,也许我误导了我的问题......我的真正意思是显示每 100 次迭代......我看到的是你的代码只显示所有 1000,如果它可以用 0 提醒来划分
    • 遗憾的是,它仍然没有将每 100 次迭代显示为输出:/
    • 由于您的代码无法按原样运行(iterationZielStatusq() 均未定义),因此很难弄清楚您的问题是什么。但是您可以从仅在满足某个条件时才显示的原则进行概括:也许更改if 条件,使其考虑到外部循环变量Ereignis 而不是i。或两者兼而有之。我不能肯定地说——我们不可能从你的代码中知道Ereignis 可能达到多高以及i 可能达到多高,因此哪个会导致更多问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多