2011-04-29 37 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

相關問題