バックナンバーはこちら。
https://www.simulationroom999.com/blog/compare-matlabpythonscilabjulia-backnumber/
はじめに
前回はPython(Numpy)に於ける行列演算について。
内積は「@」、
「*」だとアダマール積になるのが注意点になる。
今回はScilabについて
登場人物
博識フクロウのフクさん
イラスト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
Scilabの場合
太郎くん
今回はScilabだね。
フクさん
Scilabも、まだこのレベルだとMATLABと一緒だな。
太郎くん
じゃ、一気に確認してしまおう。
//足し算
-->A+B
ans =
6. 8.
10. 12.
//引き算
-->A-B
ans =
- 4. - 4.
- 4. - 4.
//掛け算(内積)
-->A*B
ans =
19. 22.
43. 50.
//アダマール積
-->A.*B
ans =
5. 12.
21. 32.
//左除算
//‘¥’はバックスラッシュ
-->A\B
ans =
- 3. - 4.
4. 5.
-->inv(A)*B
ans =
- 3. - 4.
4. 5.
//右除算
-->A/B
ans =
3. - 2.
2. - 1.
-->A*inv(B)
ans =
3. - 2.
2. - 1.
//べき乗
-->A^2
ans =
7. 10.
15. 22.
//転置
-->A'
ans =
1. 3.
2. 4.
//反転
//一次元目(縦方向)に対して反転。
-->flipdim(A,1)
ans =
3. 4.
1. 2.
--> A($:-1:1,:)
ans =
3. 4.
1. 2.
//ニ次元目(横方向)に対して反転。
-->flipdim(A,2)
ans =
2. 1.
4. 3.
--> A(:,$:-1:1)
ans =
2. 1.
4. 3.
パッと見の感想
太郎くん
大体MATLABと一緒ではあるけど、
反転のところがMATLABの書き方と違うね?
フクさん
MATLABの場合は、要素終端をendで表現していたが、
Scilabの場合は「$」になるな。
まぁ単純に置き換わると思ってもよいだろう。
太郎くん
それ以外は一緒だから、MATLABがない場合に使う分には十分使えそうだ。
まとめ
フクさん
まとめだよ。
- Scilabで基本的な行列演算実施。
- 基本的にはMATLABと同一。
- ただし、要素終端がendではなく「$」である点に注意が必要。
バックナンバーはこちら。
コメント