Добавить вектор как строку в матрицу в Юлии - PullRequest
0 голосов
/ 16 апреля 2019

У меня есть вектор и матрица (Array {T, 1} и Array {T, 2}) в моем коде Julia, и я хотел бы добавить их так, чтобы вектор стал новой строкой в ​​матрице (должен быть Первый ряд). Я пробовал несколько методов (cat и т. Д.), Но продолжаю получать ошибки, которые, как мне кажется, связаны с различной формой данных. Смотрите пример ниже.

julia> v = Vector([1, 2, 3])
3-element Array{Int64,1}:
 1
 2
 3

julia> m = Matrix([4 5 6; 7 8 9])
2×3 Array{Int64,2}:
 4  5  6
 7  8  9

julia> cat(v,m,dims=(1,2))
5×4 Array{Int64,2}:
 1  0  0  0
 2  0  0  0
 3  0  0  0
 0  4  5  6
 0  7  8  9

Что я на самом деле хочу, так это

1 2 3
4 5 6
7 8 9

Я понимаю, что могу заставить это работать с transpose(v), но я надеялся избежать дополнительных вызовов.

Спасибо!

1 Ответ

0 голосов
/ 16 апреля 2019

Пока вы можете изменить конструкцию v на массив 1 x 3, вы можете избежать транспонирования:

julia> v = [1 2 3]
1×3 Array{Int64,2}:
1  2  3

julia> m = [4 5 6; 7 8 9]
2×3 Array{Int64,2}:
4  5  6
7  8  9

julia> vcat(v, m)
3×3 Array{Int64,2}:
1  2  3
4  5  6
7  8  9

Я думаю, что просто делать транспонирование

julia> v2 = [1, 2, 3]
3-element Array{Int64,1}:
1
2
3

julia> vcat(v2', m)
3×3 Array{Int64,2}:
1  2  3
4  5  6
7  8  9

почти так же эффективен.

...