Juliaの配列と行列
配列
配列は[]にカンマ区切りで書く
code:jl
添字は1から始める
行列
行列は[]にカンマを含めずに書く
code:jl
# 改行して書いてもいい
x = [
1 2 3
4 5 6
7 8 9
]
添字は1からで、A[1,2,2]のようにアクセスする
メモリアクセスの順序がCなどと逆
ちょっと意味がわからんmrsekut.icon ref 関数を適用する時
行列全体に演算したいときは普通にsin(A)
各要素に関数を適用させたいときはsin.(A)
code:jl
sin.(a)
map(sin, a) # map関数を使っても同じ
broadcast(sin, a) # これも同じ
.は強力で、ネストさせたときも他の言語と異なり、関数がマージされ1回のループで処理される(らしい)
code:jl
cos.(sin.(a))
code:example
// ↓こんな感じに2重ループにならない
tmp = cos(a)
sin(tmp)
code:jl
code:jl
using LinearAlgebra
e, u = eigen(A)
println(e) # 固有値
println(u) # ユニタリ行列
# 対角化
D = u' * H * u
println(D)
関数群
all(arr .== 0)
jsのevery
.==や.>のように、ドットを付けることで要素ごとに比較できる
any(arr .> 0)
jsのsome