MatlabをJupyterで動かそう!
今回は、やや趣味的な要素が強めな内容でして、、、「Matlabという科学技術計算用のソフトを、Jupyterという環境で動かそう!」という、タイトルそのままの内容です(興味のある方は少ないかも……)。
今回はお試し(おまけ)のnoteとして、とりあえずぶっ込んでみたいと思います。
■Jupyterって?
Pythonを利用する際を中心に人気ですが、「Jupyter」をご存じの方も多いと思います。ブラウザ上でインタラクティブにプログラミング言語を活用する環境で、多くの場面で用いられています。
有名な、Thomas J. Sargent先生とJohn Stachurski先生たちが運営する「QuantEcon」でも、PythonとJuliaでJupyterを使ったレクチャーが提供されています。
Jupyterとは何ぞや? についてもっと詳しい解説はウェブサイトにたくさんあるのでここでは割愛して(たとえば以下などをご覧ください)、経セミでMatlabを使っていた最近の連載の話に移ります。
■Matlabは連載「定量的マクロ経済学と数値計算」で活用
『経済セミナー』では、2018年12月・19年1月号~2020年2・3月号にて以下の連載を掲載させていただいていました。
北尾早霧・砂川武貴・山田知明「定量的マクロ経済学と数値計算」
この連載では、メインの計算ソフトとしてMatlabが利用されていました。以下の本連載サポートサイトでは、連載で活用した分析コードが提供されています。しかも、ここではメインのMatlabに加えて、Julia、Python、R、Fortranでも一部提供されています。
連載では、本文を読み進めながら実際に自分でコードを動かしてみることも推奨されています。そこで、この連載のコードを動かす際にも、きっとJupyter環境をお役立ていただけるのではないかと思ったので、今回のnoteを準備してみました(少なくとも、初心者である中の人には役立っています)。
それでは以下で、このMatlabをJupyter上で活用する方法をざっくりご紹介していきたいと思います(詳細などは、下記で紹介する参照元のサイトなどをぜひご覧ください)。
■説明に入る前に画面のご紹介
通常のMatlabはこんな画面ですが(ダークモードにしているので通常とは少し違うかも、すいません…)、
以下のような感じで、PythonをJupyterで使うときみたいにインタラクティブに活用することができてしまいます! 直観的に操作できるので、中の人を含む初心者にはかなり使いやすいのではないかと思います。
なお、下記の説明はWindowsを前提にお話しますので、ご注意ください。
■まずはAnacondaのインストール
Jupyterを使うには、Anacondaというもの(ディストリビューション)をインストールしてしまうのが便利です。Anacondaは、Pythonに科学技術演算用のライブラリ、データ分析ツールなどがセットになっているものです。これをインストールすれば、数値計算目的であれば必要なものは一通り揃います(「定量的マクロ経済学と数値計算」第1回を参照)。
「Anacondaとはなんぞや?」についてや、インストールの具体的な方法は以下のサイトなどをご参照ください。インストールは簡単に行えると思います。
■Anaconda Promptの確認
Anacondaがインストールできたら、「Anaconda Prompt」というものを確認します。これは、Anacondaをインストールすると一緒に入っているAnaconda版のコマンドプロンプトのようなもので、細かい設定を行わなくても、Prompt上からPythonを実行することができます。MatlabをJupyterで動かすための設定を行うには、Anaconda Promptを利用するほうが簡単です。
なお、Anaconda Promptについて詳しくは、たとえば以下のサイトをご覧ください。
■MatlabをJupyterで動かせるようにする設定
ここまで前置きが長かったですが、いよいよMatlabをJupyterで動かせるようにします。ここでは、以下の2つのウェブサイトを参考に実行しました。
全般的な案内の詳細は以下のサイトをご覧ください(コードに一部ミスがあるので注意。丸ごとコピペすると必ず失敗します 笑。また、Mac/Linuxでの説明が中心になっています)。
Matlab側の設定については、提供元のMathworks社の以下のサイトをご覧ください。
まず、「Anaconda prompt」を、必ず管理者権限で立ち上げます(そうしないと最後の「python setup.py」で拒否されます)。
そこで、まずご自身がインストールしたPythonのバージョンを確認します(「conda create……」の行にその通りに記入。以下ではバージョン3.7と表記しています)。
そのうえで、以下を全てAnaconda promptで実行していきます。
----------------------------------------
which conda pip python
conda create -vv -n jmatlab python=3.7 jupyter
activate jmatlab
pip install matlab_kernel
python -m matlab_kernel install
以下を打ち込むと、正しく設定ができているか確認できます。
jupyter kernelspec list
次に、Matlab側を設定します(詳しくは先ほどのMathworksのサイトをご参照ください)。
まず、Matlabを立ち上げて、そのコマンドウィンドウに「matlabroot」と打ち込んで、Matlabがインストールされている場所を確認します。
それを以下の「matlabroot」にコピペして、Anaconda Promptで実行します。
cd "matlabroot\extern\engines\python"
python setup.py install
これで設定は完了です。
■Jupyterを立ち上げて確認
上記の設定がうまくいっていると、以下のようにJupyterの立ち上げ画面からMatlabが選べるようになります(上から2つめに「Matlab」と表示されています!)。
そして、こんな感じでJupyterでMatlabを動かすことができるようになります!
以上、実はJupyterでPythonやJulia、Rなどを動かせるようにするときと比べると若干めんどうなのですが、一応これでMatlabが動かせるようになるはずです。
ぜひ、この環境で、Matlabを使って「定量的マクロ経済学と数値計算」のコード練習を進めてみてください! 普通にやるよりもきっとやりやすいと思います。
おわりに:中の人の環境に依存する部分もあるかもしれませんので、うまくいかない場合はご容赦ください…。
■追記(2020年5月23日)
Twitter上で、MathworksのMichio Inoue様【michio inoue @MATLABの中の人(@michio_MWJ)】に、以下の大変貴重な情報をご教示頂きましたので、追記します(直接教えて頂けるなんて感激です!)。
MatlabにもJupyterのようにコードとアウトプットを表示できる「ライブスクリプト」という機能があります(詳細は以下)。
これを、なんとブラウザ上などでも見られるようにマークダウンに変換するfunctionを作成されているとのことです! 以下から案内や例の閲覧、ダウンロードが可能です。
またより詳しい内容は、以下のGitHubに「MATLAB の Live Script から Markdown への自動変換」という日本語の詳しいガイドもあるので、ぜひご覧下さい!
以下のように書き出すことができるんですね!
サポートに限らず、どんなリアクションでも大変ありがたく思います。リクエスト等々もぜひお送りいただけたら幸いです。本誌とあわあせて、今後もコンテンツ充実に努めて参りますので、どうぞよろしくお願い申し上げます。