2014-03-07 54 views
0

我有以下代碼的語法錯誤:凡在本朱莉婭功能

using Winston 

function testConjecGeneral(n,numTrials) 
    rangeVec = 2.0 
    uppBound = zeros(length(rangeVec), 1) 
    count = 1 
    for alpha = rangeVec 
     uppBound(count) = n*renyi([0.25, 0.5, 0.25], alpha) 
     println("Upper bound: $(uppBound(count))") 
     count = count+1 
    end 
end 

當我嘗試加載代碼,使用包括(「testConjecGeneral.jl」)在命令提示符下,我得到錯誤:語法:缺少逗號或)在參數列表中 加載/home/ganesh/UROP/YuryJulia/testConjecGeneral.jl,在第3行開始的表達式中

有人可以幫我弄清楚這一點嗎?

+0

您的問題標題不恰當...請進行更改... –

+0

任何標題建議?我同意這個標題不好,但是因爲我發現錯誤信息太神祕了,所以我想不出一個更好的。 – gandalfthegreat

回答

2
uppBound(count) = n*renyi([0.25, 0.5, 0.25], alpha) 

對我來說不正確。零返回一個數組,引用數組項的正確方法是用方括號。正如現在寫的,它看起來像試圖調用一個函數。請將該行更改爲:

uppBound[count] = n*renyi([0.25, 0.5, 0.25], alpha) 

解決此問題?

+0

不,它沒有。仍然出現相同的錯誤消息。我想知道爲什麼它會標記第3行。 – gandalfthegreat

+0

您的println也錯誤地導致了uppbound。在我調試的這一刻,我通常會開始註釋行來查看哪一個導致錯誤。 –

+0

謝謝。我來自MATLAB;忘記了()vs []索引。 – gandalfthegreat

0

我不認爲這是一個語法錯誤,但rangeVec是不是你認爲它是。您分配到rangeVec,Float642.0,然後您將rangeVec視爲Array,調用length(rangeVec)並循環播放alpha = rangeVec。你的意思是rangeVecArray還是Float64

+0

我知道,它只是用於測試目的。在MATLAB中,這種風格不會導致任何錯誤(rangeVec可以是數組或單個double)。我設法解決了這個問題,但我不記得我做了什麼。 – gandalfthegreat