如何继续循环直到达到预先建立的置信区间?

时间:2015-07-27 14:07:36

标签: matlab while-loop confidence-interval

我有一个for - 这种类型的循环:

n = 10;
all_values = cell (n,1);
for i = 1:n
   do something (series of operations)
   all_values{i} = [result1; result2]
end

现在,我想将其转换为while - 循环(因此独立于n),当达到两次连续迭代结果之间的置信区间时结束,具体时间:

result1 {n,1}(1,1) - result1 {n-1,1}(1,1) <= 0.1

我该怎么做?

2 个答案:

答案 0 :(得分:1)

循环的最直译是:

n = 2;
%// assumes first value is already set
while n == 2 || ~(result1 {n-1,1}(1,1) - result1 {n-2,1}(1,1) <= 0.1)
    %// do something (series of operations in which result1 {n,1} is set)
    all_values{n} = [result1; result2];
    n = n + 1;
end

{{1}}

答案 1 :(得分:0)

我不知道你使用细胞的原因,但是使用常规阵列很简单。我在这里随机计算

all_values = zeros(2,1);
result1 = 100;
while result1 - all_values(end-1,1) > 0.1
   result1 = rand;
   result2 = rand;
   all_values = [all_values [result1; result2]];
end

然后,您将值存储在每列中。但即使这样做也不是很好的做法,因为你的阵列无法控制地增长。

我建议定义最大迭代次数并初始化所有内容。如果不需要,您可以稍后删除不必要的列。