※この投稿は 2023 年 1 月 30 日に The MATLAB blog (Mike Croucher) に投稿されたものの抄訳です。
MATLAB の
Live Scripts と同じように、
Jupyter Notebooks でもリッチテキスト、コード、データ、計算結果を1つのファイルにまとめることができます。ただ Jupyter は、Python、R、さらには C++ や Fortran などのコンパイル言語などさまざまな言語をサポートしており、計算機科学の領域で広く普及しています。
私は Jupyter と呼ばれる以前から Project Jupyter の熱狂的なユーザーです。私が MathWorks に入社して製品開発に関わるメンバーと知り合ったとき、みんなに最初にした質問が「
いつになったら Jupyter をサポートするんですか?」でした。そして、ついにその時が来ました・・1 月 27 日に MathWorks が GitHub:
jupyter-matlab-proxy をアップデート。MATLAB Kernel for Jupyter を公開しました。
PyPI でも公開されているので、pip でインストールできます。
このパッケージは以前からありましたが、過去には JupyterHub のような環境からブラウザで MATLAB にアクセスする機能のみをサポートしていました。今回のアップデートでは、Jupyter Notebook で
MATLAB kernel for Jupyter を介して MATLAB のコードを実行することもできるようになりました。 MathWorks に入社したときからずっと要望を挙げていた機能でした。 このリリースでようやく、Jupyter Notebook での MATLAB 利用を MathWorks がサポートしていると言えます。
ちょっと言いにくいんですが・・まだ Windows では使えません
もちろん、Jupyter は Web ベースのシステムであり、リモートサーバにインストールすることができるため、Windows ユーザがこの Kernel を体験する方法はいくらでもあります。例えば、近い将来、HPCクラスタや
Science Gateways に登場することも期待しています。また MATLAB を含むすべてを
Docker コンテナで実行し、Windows から使用することも可能です。現在、将来のリリースで Windows 環境をサポートするための手段を評価しています。
Kernel のインストール
pip install jupyterlab
で Jupyter Lab をインストールし
pip install jupyter-matlab-proxy
で MATLAB Kernel Package をインストールします。これらはユーザー権限で実行されたので、すべてがシステムの PATH にない /home/ubuntu/.local/bin/ にインストールされました。.bashrcファイルに次の行を追加して準備完了です。
export PATH=$PATH:/home/ubuntu/.local/bin/
Jupyter Lab でできること – MATLAB kernel + ブラウザ版 MATLAB + コンソール
すべてがうまくいったとすると、Jupyter Lab を起動したときに Web ブラウザに表示されるのは次のようになります。
3 つ紹介したいことがあります。
1つ目は、みんなが待ち望んでいた Jupyter notebook のための MATLAB kernel です。これをクリックすると、MATLAB を kernel として実行する新しい Notebookが表示されます。いくつか試しにコマンドを実行してみます。
次は「MATLABを開く」ボタンです。最初にこれを見たときは、ローカルにインストールした MATLAB 実行ファイルへのリンクかなと思いましたが、このボタンは Web 版の MATLAB を起動します。これは MATLAB Online と似ていますが、私のハードウェア(リモートで実行している場合は、接続しているサーバーのハードウェア)で実行される点が異なります。
ワークスペースをよく見てみると、上の Notebook で作成した変数であることがわかります。つまり Web 版の MATLAB と Notebook が同じ MATLAB のインスタンスに接続されているんです。この 2 つの環境を自由に行き来することができます。
最後にコンソール版の MATLAB kernel 。ここでも、上で触れた 2 つと同じ MATLAB のインスタンスに接続されています。
ライセンスについて
初めて Jupyter Notebook で MATLAB コマンドを実行しようとしたときに、ライセンスダイアログが表示されます。
MATLAB kernel for Jupyter の機能
Jupyter Notebook を使ったことがある人なら、ほとんど期待通りのものが得られると思います。これは Jupyter ですが、MATLAB のコードを含んでいます。下の図では、欲しい結果を得るために why コマンドを数回実行したことがわかると思います・・
プロットはインラインで描画され、静的なプロットです。
Symbolic Math Toolbox から返された式は LaTeX でレンダリングされます。
テーブルや辞書などの他のオブジェクトは、MATLAB コマンドウィンドウでの表示と同様の方法でレンダリングされます。
また、タブ補完もあります。例えば、「ran」と入力し、Tab キーを押すと、以下のような選択項目が表示されました。
ちょっと驚くかもしれない制約
現時点では Windows をサポートしていないという大きな問題はすでに取り上げましたが、他の言語で Jupyter を使用するのに慣れているのであれば、他にも知っておいた方が良いことがいくつかあります。
複数の Notebook に対して MATLAB は 1 つだけ実行されます(Python カーネルで Jupyter を使ったことがあるなら、すべてのノートブックが独自の Python プロセスを持つ状況に慣れていると思います)。今回の MATLAB kernel は、実行するすべての Notebook が同じ MATLAB、そして同じワークスペースを共有します。
現在 Notebook ではサポートされていない MATLAB コマンドは以下の通りです。
- ユーザーからの対話的な入力を要求するコマンド。例:input と keyboard
- MATLAB デバッガーコマンド。例:dbstep、dbup、dbstack。
- 別のブラウザタブを開く必要があるコマンド。例:doc、appdesigner。
- アニメーションを作成するコマンド。例:movie、vibes。
- MATLAB R2022a およびそれ以前のバージョンでは、LASTERR および LASTERROR は Notebook で実行された MATLAB のエラーを取得できません。
- ローカルライセンスの MATLAB は現在サポートされていません。ユーザーは、オンラインライセンスまたはネットワークライセンス マネージャを使用してログインする必要があります。
フィードバックお待ちしています
さて、これでひとまずおしまい。新しい MATLAB kernel for Jupyter のいくつかの機能と制限のクイックツアーでした。Jupyter エコシステムの長年のサポーターでありユーザーとして、今回の MathWorks としてのサポートには個人的に感激しています。
これは最初の一歩であり、さらに多くのことを行っていく予定です。コメント欄でご意見をお聞かせください。技術的な問題に遭遇したり、機能強化の要望がある場合は、
Issue を作成するか、
jupyter-support@mathworks.com にメールを送ってください。
Comments
To leave a comment, please click here to sign in to your MathWorks Account or create a new one.