在 Julia 中调整矩阵大小
Resize matrix in Julia
如何转换矩阵 A
A = [a b c
d e f
g h i]
到矩阵 B?
B = [a a b b c c
a a b b c c
d d e e f f
d d e e f f
g g h h i i
g g h h i i]
您可以使用 repeat
:
julia> A = ['a' 'b' 'c'
'd' 'e' 'f'
'g' 'h' 'i']
3×3 Matrix{Char}:
'a' 'b' 'c'
'd' 'e' 'f'
'g' 'h' 'i'
julia> repeat(A, inner = (2, 2))
6×6 Matrix{Char}:
'a' 'a' 'b' 'b' 'c' 'c'
'a' 'a' 'b' 'b' 'c' 'c'
'd' 'd' 'e' 'e' 'f' 'f'
'd' 'd' 'e' 'e' 'f' 'f'
'g' 'g' 'h' 'h' 'i' 'i'
'g' 'g' 'h' 'h' 'i' 'i'
比repeat
稍慢,但对于数值数组,也可以使用kron
:
julia> A = permutedims(reshape(1:9, 3, 3))
3×3 Matrix{Int64}:
1 2 3
4 5 6
7 8 9
julia> kron(A, ones(Int, 2, 2))
6×6 Matrix{Int64}:
1 1 2 2 3 3
1 1 2 2 3 3
4 4 5 5 6 6
4 4 5 5 6 6
7 7 8 8 9 9
7 7 8 8 9 9
如何转换矩阵 A
A = [a b c
d e f
g h i]
到矩阵 B?
B = [a a b b c c
a a b b c c
d d e e f f
d d e e f f
g g h h i i
g g h h i i]
您可以使用 repeat
:
julia> A = ['a' 'b' 'c'
'd' 'e' 'f'
'g' 'h' 'i']
3×3 Matrix{Char}:
'a' 'b' 'c'
'd' 'e' 'f'
'g' 'h' 'i'
julia> repeat(A, inner = (2, 2))
6×6 Matrix{Char}:
'a' 'a' 'b' 'b' 'c' 'c'
'a' 'a' 'b' 'b' 'c' 'c'
'd' 'd' 'e' 'e' 'f' 'f'
'd' 'd' 'e' 'e' 'f' 'f'
'g' 'g' 'h' 'h' 'i' 'i'
'g' 'g' 'h' 'h' 'i' 'i'
比repeat
稍慢,但对于数值数组,也可以使用kron
:
julia> A = permutedims(reshape(1:9, 3, 3))
3×3 Matrix{Int64}:
1 2 3
4 5 6
7 8 9
julia> kron(A, ones(Int, 2, 2))
6×6 Matrix{Int64}:
1 1 2 2 3 3
1 1 2 2 3 3
4 4 5 5 6 6
4 4 5 5 6 6
7 7 8 8 9 9
7 7 8 8 9 9