バックナンバーはこちら。
https://www.simulationroom999.com/blog/compare-matlabpythonscilabjulia-backnumber/
はじめに
前回は、Scilabで基本的な行列演算実施。
基本的にはMATLABと同一ではあるが、
要素終端がendではなく「$」である点に注意が必要。
今回はJuliaについて
登場人物
博識フクロウのフクさん
イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1
エンジニア歴8年の太郎くん
イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1
Juliaの場合
そして、最後にJuliaになるわけだけど。
Juliaはわからんけど、
調べた範囲だとMATLABと同じ感じで行けばOKっぽいな。
とりあえず、MATLABと思って書きつつ、
なんか期待と異なる動きがあれば確認
って感じでざっとやってしまおう。
一気に計算
# 足し算
> A+B
2×2 Matrix{Int64}:
6 8
10 12
# 引き算
> A-B
2×2 Matrix{Int64}:
-4 -4
-4 -4
# 掛け算(内積)
> A*B
2×2 Matrix{Int64}:
19 22
43 50
# アダマール積
> A.*B
2×2 Matrix{Int64}:
5 12
21 32
# 左除算
# ¥’はバックスラッシュと同義
> A\B
2×2 Matrix{Float64}:
-3.0 -4.0
4.0 5.0
> inv(A)*B
2×2 Matrix{Float64}:
-3.0 -4.0
4.0 5.0
# 右除算
> A/B
2×2 Matrix{Float64}:
3.0 -2.0
2.0 -1.0
> A*inv(B)
2×2 Matrix{Float64}:
3.0 -2.0
2.0 -1.0
# べき乗
> A^2
2×2 Matrix{Int64}:
7 10
15 22
# 転置
> A'
2×2 adjoint(::Matrix{Int64}) with eltype Int64:
1 3
2 4
# 一次元目(縦方向)に対して反転
> reverse(A,dims=1)
2×2 Matrix{Int64}:
3 4
1 2
> A[end:-1:1,:]
2×2 Matrix{Int64}:
3 4
1 2
# ニ次元目(横方向)に対して反転
> reverse(A,dims=2)
2×2 Matrix{Int64}:
2 1
4 3
> A[:,end:-1:1]
2×2 Matrix{Int64}:
2 1
4 3
パッと見の感想
ほぼMATLABと一緒かー。
違いは、
配列添え字のカッコが丸カッコじゃなくて角カッコな点。
flipdimは使えなくて、代わりにreverseという関数を使用する点。
ってところかな。
flipdim関数が有れば、ほぼMATLABだよねー。
以前は、flipdim関数は存在したようだが、
Juliaのversion1.x以降には存在しないようだ。
代わりにreverseで代替ってところだな。
なんで無くなったんだろね?
そこら辺はわからんな。
まぁ区間演算子の書き方は同一っぽいから、そこで悩むことは少なそうだけど。
ホントだ。
そこは一緒なのか。
まとめ
まとめだよ。
- Juliaで基本的な行列演算を実施。
- 大体MATLABと一緒だが、以下の違いがある。
- 配列添え字のカッコが丸カッコじゃなくて角カッコ。
- flipdimは使えなくて、代わりにreverseという関数を使用する。
- 以前はflipdimは存在していたようだが、現在では無くなってる。
バックナンバーはこちら。
コメント