2017-05-29 58 views
1

我希望全局變量m和n可以得到第一個和第二個維度的大小。然而,它seeems不正確:Julia在將全局變量分配給全局m中的元組時出錯,n = size(x);

julia> x=rand(3,3) 
3×3 Array{Float64,2}: 
0.680079 0.929336 0.267358 
0.874437 0.625239 0.804478 
0.92407 0.737254 0.443433 

julia> m,n = size(x); 
julia> m,n 
(3,3) 

julia> global m,n = size(x); 
julia> m,n 
(3,(3,3)) 

爲什麼分配2個變量,以不同的元組,當我們添加全局關鍵字的這種行爲?

+4

朱莉婭0.6給出了一個折舊警告'使用「全球米;全球N =尺寸(X)」 instead.'這給你線索得到表達如何解釋。你可以使用'global(m,n)= size(x)'得到你想要的。 –

+0

不錯。我試過了,並在0.5上得到了錯誤信息 - 但這是直觀的解決方案。 –

回答

3

它似乎將逗號分隔在語句中。如果你只是做

x = rand(3,3) 
global m,n = size(x) 

在一個新的會話,你會看到,m沒有定義(在你的例子是從語句之前定義)。 globalm取出,並將結果分配給n

我認爲你必須

global m = size(x,1) 
global n = size(x,2)