2015-09-26 47 views
3

使用朱莉婭,我定義零的9×10矩陣,並正嘗試改變單一的入口,但我得到的錯誤'setindex!' has no method matching setindex!(::Float64, ::Float64, ::Int64)沒有方法匹配setindex:試圖改變矩陣值

我的代碼是:

m = zeros(9,10) 
m[1][1] = 1.0 

錯誤指向第二行。 typeof(m)Array{Float64,2},據我所知可以是可變的。

我在這裏做錯了什麼?

回答

7

要索引2維數組,只需使用m[1,1]

語法m[1][1]將是有效的1維陣列的一維數組。

m = zeros(9,10) 
m[1,1] = 1.0 

m = Array[ [1,2], [3,4,5] ] 
m[1][1] 
+2

'getindex'方法定義爲Number類型爲:'getindex(x :: Number,i :: Integer)= i == 1? x:throw(BoundsError())'所以語法m [ind] [1]在用於獲取值時是有效的。但'setindex!'不適用' –

+0

這是因爲你不能改變分配給不可變數量的值,如數字。 – tholy