gpt4 book ai didi

Julia - 将向量组合到矩阵中

转载 作者:行者123 更新时间:2023-12-04 11:17:25 25 4
gpt4 key购买 nike

假设我有两个向量 x = [1, 2]y = [3, 4] .如何最好地组合它们以获得矩阵 m = [1 2; 3 4]在 Julia 编程语言中?预先感谢您的支持。

最佳答案

请注意,在 vcat(x', y')操作x'是伴随的,因此如果您正在处理未定义伴随的复数或向量元素(例如字符串),则不应使用它。那么permutedims应该使用,但分配时会变慢。第三种方法是(不可否认,键入更麻烦):

julia> [reshape(x, 1, :); reshape(y, 1, :)]
2×2 Array{Int64,2}:
1 2
3 4
它是非分配的,如 [x'; y']但不做递归伴随。
编辑:
卡梅伦注意事项:
julia> x = repeat(string.('a':'z'), 10^6);

julia> @btime $x';
1.199 ns (0 allocations: 0 bytes)

julia> @btime reshape($x, 1, :);
36.455 ns (2 allocations: 96 bytes)
所以 reshape分配但只是最低限度的(它需要创建一个数组对象,而 x' 创建一个不需要分配的不可变结构)。
此外,我认为这是分配的设计决定。至于 isbitsunion实际类型 reshape返回一个结构,因此它不会分配(类似于范围):
julia> @btime reshape($x, 1, :)
12.211 ns (0 allocations: 0 bytes)
1×2 reshape(::Array{Union{Missing, Int64},1}, 1, 2) with eltype Union{Missing, Int64}:
1 missing

关于Julia - 将向量组合到矩阵中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64828632/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com