【入門】MATLAB,Python,Scilab使い方比較【数値計算プログラム】

【入門】MATLAB,Python,Scilab使い方比較【数値計算プログラム】MATLAB/Simulink
スポンサーリンク

はじめに

MATLAB,Python,Scilabの機能説明や比較のページ。
内容的には以下を想定。

  • 単純計算
  • ベクトル行列計算
  • 関数の作り方
  • グラフ表示

これら基礎的な部分に加え、以下も取り扱う。

  • 伝達関数
  • 動画取り込み
  • 最小二乗法

※ 文字数/画像数が多いためかページが重くなったので2ページに分割しました。

スポンサーリンク

発端

私は仕事やら趣味やらでMATLAB,Python,Scilabを行ったり来たりしているうちで脳内が混乱をきたすことがある。

  • MATLAB:仕事用。どちらかというとSimulinkの利用がメイン。有償
    • 単体で30万円くらい。
    • Simulink:40万円ちょい。
    • StateFlow:40万円ちょい。
    • Simulink Coder:40万円ちょい。
    • Embedded Coder:70万円ちょい。
  • Python:ディープラーニング勉強用&仕事上のちょっとした計測データの整形用。無償
  • Scilab:自宅での実験用。この実験が仕事としてMATLAB側で再構築されることもある。無償

(どれもWindows、Linux、Macで使用可能。)

自分で組む場合は、「あ、しまった。間違えた」でやり直せばOKなのだが、まれに人前で即興で組むことがある。
ここで変に間違って手間取るとちょっと恥ずかしい。
まぁ、シレっと何事もなく書き直すのだけども、実は内心としてはかなり恥ずかしいのを耐えている状態。これは精神衛生上よろしくない。

特にMATLABとScilabに似すぎてる割には関数呼び出しのメカニズムの違いに振り回されるし、Pythonは他2つと比べるとベクトル行列表現が結構違うので、MATLABでPython的に記載して、「狙った通りうごかん。なぜじゃ」ってなる。逆も然り。

よって、ここいらで、自戒の意味を込めて入門的な部分から整理しようと思い立った。

スポンサーリンク

割とどうでも良い差分(超重要)

Pythonちゃんはいるけど、MATLABちゃんとScilabちゃんはいない!!

Pythonちゃん

Pythonちゃん(paizaの「コードガールこれくしょん」のキャラらしい)

武器:大型セミオート式狙撃銃(孤独でクールなスナイパー)

無駄なおしゃべりが苦手で受け答えはいつも完結、誰が相手でもクールに接する女の子。そのクールさや公平さに憧れるファンも多いようです。ペットのヘビを常に連れており、彼女に興味はあるけどヘビが怖くて近づけない……という人もいるとかいないとか。

画像は以下から拝借。

まぁScilabちゃんが居ないのは仕方ないが、
MATLABちゃんくらいは居てもいいんじゃないかとは思う。
ここらへんの差で学習のモチベーション変わるかもしれないし。(←え?)

(これ以降はまじめに書きます。)

スポンサーリンク

MATLAB、Python、Scilabの説明

MATLABとは

MATLAB(マトラボ)は、アメリカ合衆国のMathWorks社が開発している数値解析ソフトウェアであり、その中で使うプログラミング言語の名称でもある。MATLABは、数値線形代数、関数とデータの可視化、アルゴリズム開発、グラフィカルインターフェイスや、他言語(C言語/C++/Java/Python)とのインターフェイスの機能を有している。

Wikipediaより(https://ja.wikipedia.org/wiki/MATLAB)

Pythonとは

Python(パイソン)は、汎用のプログラミング言語である。コードがシンプルで扱いやすく設計されており、C言語などに比べて、さまざまなプログラムを分かりやすく、少ないコード行数で書けるといった特徴がある。

Wikipediaより(https://ja.wikipedia.org/wiki/Python)

Pythonをガッツリ学習したい場合はオンライン学習サービスなどもあります。

オンラインPython学習サービス「PyQ(パイキュー)」公式ページ

ポイント

  • 環境構築不要
    • ブラウザだけで学習を始められる。
  • 申し込みから4ステップで登録を完了
    • 申し込み完了待ちとかない。すぐ始められる。
  • 1,000問以上の実践的な課題がある。

Scilabとは

Scilab(サイラボ)とは、1990年からフランスのINRIA(Institut National de Recherche en Informatique et en Automatique、国立情報学自動制御研究所)とENPCで開発されているオープンソースの数値計算システムである。

Wikipediaより(https://ja.wikipedia.org/wiki/Scilab)
スポンサーリンク

MATLAB,Python,Scilabの個人的所感

MATLAB、Scilabはそっくりさんです。
MATLAB側に特殊なtool boxを入れなければ大体Scilabでいけることが多い。
ただ、オードコード生成とかsimulink+他のベンダーツール連携とか高度なことをしようとするとScilabでは辛くなる。
上記2つと比べるとPythonは本来であれば全く別物になる。
しかし、Pythonで使用できるNumPyというパッケージがベクトル、行列の定義と演算を可能にし、数値計算の領域に於いてもMATLAB、Scilabとタメを張れる状態になった。
機械学習、ディープラーニングでPythonが良く使用されるのはこのNumPyのおかげと思って良い。

スポンサーリンク

基本的な使い方

MatlabpythonScilab
コメント%#//
結果の非表示;(セミコロン)なし;(セミコロン)
複数行での入力…(ピリオド三つ)\\\\…(ピリオド三つ)
要素指定1スタート0スタート1スタート
要素抜き出し終端指定終端指定終端の次を指定終端指定
列要素維持維持する維持しない維持する

特に要素指定がpythonだけ0スタートの点に注意。
後になって「全部手直しやー!」ってことになる。

MATLABの基本的な使い方

Pythonの基本的な使い方

Scilabの基本的な使い方

スポンサーリンク

行列演算

Pythonの乗除がやや異なる点に注意が必要。
Pythonは逆順スライシングを利用した反転、Scilabは要素数$を利用した反転の仕方がある。

MATLABの行列演算

Pythonの行列演算

Scilabの行列演算

スポンサーリンク

ユーザ関数作成

それぞれ以下の性質がある。
MATLAB:ファイル名=関数名
Python:importでファイル名指定
Scilab:基本はワークスペース内で定義。ファイルとして作成することもできるが、利用前に定義スクリプトを走らせる必要がある。

MATLABのユーザ関数作成方法

Pythonのユーザ関数作成方法

Scilabnoユーザ関数作成方法

次は波形表示、伝達関数、画像処理、最小二乗法について

コメント

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