2013-07-03 72 views
1

爲了調試一個小gnuplot腳本,我想在用戶定義的函數中插入一個printf,以便我可以跟蹤它接收和返回的值。在gnuplot中的printf調試

有沒有辦法做到這一點?

例如,該功能在某些情況下返回的NaN(例如,當n = 100):

eps_rf_i(n, i) = binom(n,i) * eps**i * (1-eps)**(n-i) 
eps_rf(n) = sum[i=n/2 : n] eps_rf_i(n,i) 

我試圖在功能 eps_rf_i這樣插入一個printf:

eps_rf_i(n, i) = (print binom(n,i) * eps**i * (1-eps)**(n-i), binom(n,i) * eps**i * (1-eps)**(n-i)) 
eps_rf(n) = sum[i=n/2 : n] eps_rf_i(n,i) 

但gnuplot的的打印後立即報告錯誤:

gnuplot> eps_rf_i(n, i) = (print binom(n,i) * eps**i * (1-eps)**(n-i), binom(n,i) * eps**i * (1-eps)**(n-i)) 
           ^
"error_rate.plt", line 11: ')' expected 

有沒有其他調試方法 eps_rf

所有提示和見解將不勝感激。

回答

0

我無法測試您的腳本不工作,因爲某些功能沒有定義。

您不能在用戶定義的函數中使用print命令。 但是你可以附加你想打印的值。

value="" 
eps_rf_i(n, i) = (value=value.sprintf("%f\n",binom(n,i) * eps**i * (1-eps)**(n-i)), binom(n,i) * eps**i * (1-eps)**(n-i)) 
eps_rf(n) = sum[i=n/2 : n] eps_rf_i(n,i) 

result->

print eps_rf(10) 

您可以檢查追蹤值

print value 

謝謝,