2014-11-05 116 views
1

我使用y =[x,a]时来连接我的两个阵列具有尺寸不匹配的问题:朱莉娅阵列级联尺寸不匹配

x = reshape(1:16, 4, 4) 
x = mean((x ./ mean(x,1)),2)' 

a = zeros(3) 

println(x) 

y =[x,a] 

print (y) 

如果我尝试将它们结合起来,我会得到这个错误:

mismatch in dimension 2 

两个变量x和a似乎在控制台中的尺寸相同:

println(x) 

[0.7307313376278893 0.9102437792092966 1.0897562207907034 1.2692686623721108] 

println(a) 

[0.0,0.0,0.0] 

x是在第二个维度。有没有一种方法来组合数组,所以我可以在维度1?

y = [0.7307313376278893 0.9102437792092966 1.0897562207907034 1.2692686623721108, 0.0,0.0,0.0] 

回答

2

的问题是,通过转X(把一个'在该行的结尾)你结束了以下内容:

julia> size(x) 
(1,4) 

julia> size(a) 
(3,) 

所以,当你尝试y=[x,a]朱莉娅理所当然地抱怨说,它不能连接它们。

有(至少)两种解决方案:

1)不要转X:

x = reshape(1:16, 4, 4) 
x = mean((x ./ mean(x,1)),2) 

a = zeros(3) 

println(x) 

y =[x,a] 

print (y) 

2)也转a和没有逗号级联:

x = reshape(1:16, 4, 4) 
x = mean((x ./ mean(x,1)),2)' 

a = zeros(3)' 

println(x) 

y =[x a] 

print (y) 

在第一种情况下,您将拥有size(y) = (7, 1),在第二种情况下,您将拥有size(y) = (1,7),那么您选择的选项将取决于您想要的t他的尺寸为y

+0

我猜测显示器有问题,因为它不是直接穿过没有逗号,就是没有逗号。有没有办法将它更改为像方法2一样的1xn数组,但使用逗号或逗号只是一个整型问题? – ccsv 2014-11-06 02:50:42

+0

与commmas =一个矢量,一个固有的一维对象。在没有逗号的情况下= 1行的矩阵。逗号仅用于向量。 – IainDunning 2014-11-06 03:51:40