[英]Julia Array Concatenation dimension mismatch
使用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]
問題是,通過轉置x(在行的末尾添加'
),您將得到以下結果:
julia> size(x)
(1,4)
julia> size(a)
(3,)
因此,當您嘗試y=[x,a]
Julia正確地抱怨它無法將它們連接起來。
有(至少)兩種解決方案:
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)
所以哪個選項您選擇將取決於你想要的大小y
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.