2011-04-29 75 views
0

这是我的八度代码Octave while/for语句 - 代码中出现了什么问题?

for K= 1:10 
    while (p < 1) 
     ceil(log2(K)) + 1/(1-(1-p)^K) %function 
     p = p + sens; 
     K 
    endwhile; 
endfor 

K 

这里是输出:

ans = 10.000 
K = 1 
ans = 5.0000 
K = 1 
ans = 3.3333 
K = 1 
ans = 2.5000 
K = 1 
ans = 2 
K = 1 
ans = 1.6667 
K = 1 
ans = 1.4286 
K = 1 
ans = 1.2500 
K = 1 
ans = 1.1111 
K = 1 
ans = 1 
K = 1 
K = 10 

所以,你可以看到 - 在Kwhile声明值固定为1。我是什么应该这样做,以便在1到10之间改变这个值。为什么它不起作用?我不知道为什么这个内部的while陈述只进行一次。

答:应该有P = initial_value后for K= ...

+0

你能对你是如何解决这个解释一下? – whatwhatwhat 2016-03-28 18:49:15

+0

或者显示最终的代码? – whatwhatwhat 2016-03-28 18:49:21

回答

2

[即使你自己找到答案你的问题,你应该把它放在一个答案,并接受它,这样的问题是“正式”解决了。我会评论,但没有足够的在这里口碑]

答:应该有p= initial_valuefor K=... 后也就是说,这样的:

for K= 1:10 
    p=somevalue; 
    while (p < 1) 
    ... 
+0

你能详细解释一下吗?它究竟是什么样子? – whatwhatwhat 2016-03-28 18:49:00

+0

我编辑了答案,就像我认为OP想让它看起来一样。 – Christoph 2016-03-29 06:15:48

相关问题