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