Juliaの配列と行列
from Julia
配列
配列は[]にカンマ区切りで書く
code:jl
x = 1,2,3,4,5
添字は1から始める
RやMATLAB、FORTRANと同じ
行列
行列は[]にカンマを含めずに書く
code:jl
x = 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などと逆
ちょっと意味がわからんmrsekut.icon ref
関数を適用する時
行列全体に演算したいときは普通にsin(A)
各要素に関数を適用させたいときはsin.(A)
code:jl
a = 1,2,3
sin.(a)
map(sin, a) # map関数を使っても同じ
broadcast(sin, a) # これも同じ
.は強力で、ネストさせたときも他の言語と異なり、関数がマージされ1回のループで処理される(らしい)
code:jl
a = 1,2,3
cos.(sin.(a))
code:example
// ↓こんな感じに2重ループにならない
tmp = cos(a)
sin(tmp)
Juliaの関数について - Qiita
転置行列
code:jl
x = 1 2 3' # (3 * 1)
対角化
code:jl
using 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