【问题标题】:Summing iterations in MATLAB?在 MATLAB 中求和迭代?
【发布时间】:2013-05-11 13:17:21
【问题描述】:

我有以下代码:

xRange=[1 length(delta1)];
yRange=[-80 0];
box11=(delta1>=xRange(1)) & (delta1 <= xRange(2)) & (Sref1 >= yRange(1)) & (Sref1 <=     yRange(2));
delta11=delta1(box11);
Sref11=Sref1(box11);
size11=sum(box11(:));
size1=numel(delta1); % or numel(y); whatever floats your boat
perc1=(size11/size1)*100;

它工作得很好,但问题是当我把它放在一个循环中时,它只会计算一次 perc1,我想要所有循环的 perc1 总和(即所有百分比的总和)。我该怎么做??

【问题讨论】:

    标签: matlab iteration


    【解决方案1】:

    您可以在循环之前初始化 perc1=0 并在循环中更改 perc1= perc1 + (size11/size1)*100。

    【讨论】:

    • 感谢您的回复。当我应用你的想法时,我得到一个百分比数字。但是当我手动计算时,我会得到其他数字?!我这样做 perc1= (perc1 + (size11/size1)*100)/i 是为了得到所有迭代的平均百分比
    • 不,您不能在循环中将 perc1 除以 i 作为平均值。您必须定义另一个变量 avg = perc1/i 因为 perc1 是计算到第 i 个周期的所有百分比的总和
    • 如果你想在没有新变量的情况下对百分比进行连续平均,你可以这样做 if i==1, perc1 = size11/size1*100;否则 perc1 = ( perc1*(i-1) + size11/size1*100 )/i;结束,但“如果”的引入降低了算法的速度
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-10
    • 1970-01-01
    • 2013-03-14
    • 2015-05-08
    • 2016-06-30
    • 2011-08-05
    相关资源
    最近更新 更多