假设我想应用一个向量值函数 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/