MATLAB,Python,Scilab,Julia比較 その34【行列演算⑰】

MATLAB,Python,Scilab,Julia比較 その34【行列演算⑰】 数値計算
MATLAB,Python,Scilab,Julia比較 その34【行列演算⑰】

バックナンバーはこちら。
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は存在していたようだが、現在では無くなってる。

バックナンバーはこちら。

コメント

タイトルとURLをコピーしました