有没有办法在 Julia 中实现一个矩阵数组,其数组维数固定,但矩阵维数不固定?

问题描述 投票:0回答:1

我想创建一个矩阵数组。

我知道数组的大小必须是 M,因为我有 M 个矩阵;我知道这些矩阵每个都有 2 列。

问题是我试图从空矩阵开始,然后迭代地向其中添加行,而不受所有矩阵具有相同行数的约束。

有办法吗?

我已经尝试过构造一个多维数组,但这根本不合适;我什至尝试过元组。

为了更好的描述:我有 k 个反应,每个反应都有一个矩阵 S_k,有两列和未定义的行数,用于描述每次反应的状态:所以每一行都是一对(时间,反应数)。

提前谢谢您。

arrays matrix julia dynamic-programming stochastic-process
1个回答
0
投票

我可能误解了这个问题,但是是的,你可以有一个不同维度的矩阵数组。下面是一个推导式示例,它创建一个由 5 个矩阵组成的数组,每个矩阵有 2 列和不同的行号:

julia> array_of_matrices = [rand(rand(3:6), 2) for _ ∈ 1:5]
5-element Vector{Matrix{Float64}}:
 [0.16390977474247215 0.5022783236167151; 0.8260932806530918 0.048892058894993706; 0.2050982225126189 0.8268597022605331; 0.3679999922676087 0.2615738525064113]
 [0.23019816493422351 0.503170237173157; 0.996702030925437 0.9008237078743219; 0.0778729856221484 0.15888300734850347]
 [0.7363004053694209 0.7680290196196188; 0.841073281477227 0.3474907079656052; 0.832204878714787 0.6334775322221707]
 [0.04549708519503681 0.21413209287307777; 0.6149843201061922 0.08611491251184544; 0.23532316106387152 0.7183110423286065; 0.027245255826792825 0.30094149139867366]
 [0.6261976636707116 0.8589227302567523; 0.07592584211609932 0.4085978842890514; … ; 0.780572443259161 0.71446197309504; 0.3217816825050146 0.6992322737059268]

julia> array_of_matrices[1]
4×2 Matrix{Float64}:
 0.16391   0.502278
 0.826093  0.0488921
 0.205098  0.82686
 0.368     0.261574

julia> array_of_matrices[2]
3×2 Matrix{Float64}:
 0.230198  0.50317
 0.996702  0.900824
 0.077873  0.158883
© www.soinside.com 2019 - 2024. All rights reserved.