#arrays #vector #julia #concatenation
#массивы #вектор #julia #объединение
Вопрос:
Как я могу объединить массивы разного размера со значением «заполнителя», когда массивы не выстраиваются в линию?
a = [1,2,3]
b = [1,2]
И я хотел бы:
[1 2 3
1 2 missing]
Или
[1 2 3
1 2 nothing]
Комментарии:
1. Не могли бы вы пояснить, почему вы хотели бы это сделать? (PS: ни один из выходных данных, которые вы запрашиваете, не содержит допустимого синтаксиса Julia)
2. Спасибо, я исправил выходные данные. У меня есть массив массивов смешанной длины, которые я хотел бы представить
show
в матричном формате. Я хотел объединить их в матрицу, а затем использоватьshow
метод изNamedArrays.jl
Ответ №1:
Один из способов, с помощью rstack
которого используется «рваный стек». Он всегда размещает массивы вдоль одного нового измерения, таким образом, учитывая векторы, они образуют столбцы матрицы. (В исходном вопросе может потребоваться транспонирование этого результата.)
julia> using LazyStack
julia> rstack(a, b; fill=missing)
3×2 Matrix{Union{Missing, Int64}}:
1 1
2 2
3 missing
julia> rstack(a, b, reverse(a), reverse(b); fill=NaN)
3×4 Matrix{Real}:
1 1 3 2
2 2 2 1
3 NaN 1 NaN