簡體   English   中英

Julia數組串聯維度不匹配

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM