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

Mau*_*cio 3 arrays julia

我找不到这个简单问题的答案。

我有以下几点:

A(a,j)=[a*j*i*k for i in 1:2, k in 1:2];

B=[A(a,j) for a in 1:2, j in 1:2];
Run Code Online (Sandbox Code Playgroud)

B是一个数组的数组:2×2 Array{Array{Int64,2},2}。这对于轻松访问带有索引的子数组(例如,B[2,1])很有用。但是,我还需要转换B为 4 x 4 矩阵。我试过了,hcat(B...)但会产生一个 2 x 8 的矩阵,其他选项更糟(例如,cat(Test2...;dims=(2,1)))。

有没有一种有效的方式来编写B矩阵,同时保持轻松访问其子数组的能力,尤其是当它B变得非常大时?

Bog*_*ski 5

你想要这个吗:

julia> hvcat(size(B,1), B...)
4×4 Array{Int64,2}:
 1  2  2   4
 2  4  4   8
 2  4  4   8
 4  8  8  16
Run Code Online (Sandbox Code Playgroud)

或不定义B

julia> hvcat(2, (A(a,j) for a in 1:2, j in 1:2)...)
4×4 Array{Int64,2}:
 1  2  2   4
 2  4  4   8
 2  4  4   8
 4  8  8  16
Run Code Online (Sandbox Code Playgroud)