如何从Julia中的行/列向量构造矩阵

时间:2015-04-27 13:42:31

标签: matrix julia

给定一个产生单个列的函数/表达式,如何从Julia中的那些列构建矩阵?我尝试了以下(简化示例):

column(j) = [j, j, j]      # for example
my_matrix = Float64[column(j)[i] for i in 1:3, j in 1:4]

==> 3x4 Array{Float64,2}:
 1.0  2.0  3.0  4.0
 1.0  2.0  3.0  4.0
 1.0  2.0  3.0  4.0

结果是正确的,但这不是我想要的,因为不必要地评估了column-vector-expression(每行一次)。

我也尝试过这种替代方法:

[column(j) for j in 1:4]

==> 4-element Array{Array{Float64,1},1}:
 [1.0,1.0,1.0]
 [2.0,2.0,2.0]
 [3.0,3.0,3.0]
 [4.0,4.0,4.0]

但我发现转换重塑无法将其转换为我想要的形式(具有两个维度而非数组数组的矩阵)。

如何在朱莉娅实现这一目标?

1 个答案:

答案 0 :(得分:6)

您是否尝试过hcat

julia> column(j) = [j, j ,j]
column (generic function with 1 method)

julia> my_matrix  = hcat([column(j) for j=1:4]...)
3x4 Array{Int64,2}:
 1  2  3  4
 1  2  3  4
 1  2  3  4