在 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