logo

ジュリアでインデックスを使用してベクトルと行列を交換するためのトリック 📂Julia

ジュリアでインデックスを使用してベクトルと行列を交換するためのトリック

コード

Juliaで見た目は同じに見えるベクトル $\mathbf{x} \in \mathbb{R}^{n}$ と行列 $A \in \mathbb{R}^{n \times 1}$ の型を簡潔に切り替える方法を紹介する1. ベクトルを作る関数 vec と行列にする関数 Matrix を見事に置き換えられる。

julia> x = rand(3)
3-element Vector{Float64}:
 0.7442995832650368
 0.8715261955707428
 0.3513679030410609

julia> A = rand(3, 1)
3×1 Matrix{Float64}:
 0.20615245161740703
 0.19079463624599347
 0.6776521393838526

例えば上のように $\mathbf{x} \in \mathbb{R}^{3}$ と $A \in \mathbb{R}^{3 \times 1}$ があるとしよう。言葉は不要で、単に例を見れば良い。

ベクトルから行列へ x[:,:]

julia> x[:,:]
3×1 Matrix{Float64}:
 0.7442995832650368
 0.8715261955707428
 0.3513679030410609

行列からベクトルへ A[:]

julia> A[:]
3-element Vector{Float64}:
 0.20615245161740703
 0.19079463624599347
 0.6776521393838526