julia - 如何将数组数组转换为矩阵?

标签 julia

假设我想应用一个向量值函数 phi到矢量 x :

phi(x, d) = [x.^i for i=0:d]    # vector-valued function
x = rand(7)                     # vector
y = phi(x, 3)                   # should be matrix, but isn't

现在 y应该是一个矩阵,但它是一个 4-element Array{Array{Float64,1},1} ,即一个数组数组。其实我想要y成为一个矩阵。是执行phi错误的?或者我如何转换它?

谢谢!

最佳答案

正如您所指出的,您可以连接一组数组 x使用 hcat(x...) ,但通常最好先创建一个矩阵。在这种情况下,您可以通过两种方式做到这一点:

  • 使用广播:
    phi(x, d) = x.^((0:d)')
    

    只要x是一个向量,它将针对行矩阵进行广播 (0:d)' .

    您可以通过转置x 得到转置结果。而不是范围 0:d .
  • 使用二维数组推导式:
    phi(x, d) = [xi.^di for xi in x, di in 0:d]
    

    只要 x 就可以使用是可迭代的。如 x是一个 n 维数组,它将被解释为好像它首先被展平。

    您可以通过切换理解变量的顺序来转置结果:
    phi(x, d) = [xi.^di for di in 0:d, xi in x]
    
  • 关于julia - 如何将数组数组转换为矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26673412/

    相关文章:

    python-2.7 - 当 anaconda 预装了 python 3.4 时,是否可以将 python 2.7 与 julia 一起使用?

    Julia:在数据框中将缺失值转换为 0

    mongodb - Julia MongoDB 保存原始变量

    iterator - 如何在 Julia 1.0 中创建自定义迭代器?

    julia - 如何将所有关键字参数传递给内部函数?

    arrays - 如何将RGB{N0f8}类型转换为Array{Float64}

    julia - 在 Julia 中更改位状态

    julia - 如何在 Julia 中定义空 IndexedTable?

    Julia :如何返回数组中唯一元素的数量

    performance - 与字典查找相比,Julia Val{c}() 似乎很慢