2017-05-29 56 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)