粗大メモ置き場

個人用,たまーに来訪者を意識する雑記メモ

MATLAB LiveScriptで報告書作成

MATLAB LiveScriptとは

ソースコードと説明用の式や図をInteractiveに表示するMATLABの新たな表示形式です。
以下がMATLAB公式の説明。
ライブ スクリプトとは - MATLAB & Simulink - MathWorks 日本


Pythonをやる人にはjupyterみたいなもんといえばわかるでしょうか。
MATLABをjupyterで使うということもできますがPython環境を準備したりが面倒でしたよね。

なお,公式には2016aから対応しているとのこと。
持ってない人は買いましょう。学生は一万円くらいで2ライセンス買えます。(生協・Amazonからの購入。生協にあるなら生協の方が安いかと。)

MATLAB2018のStudent版はDeep Learningを含む機械学習等にも力を入れているので以前のバージョンを持っている人も試してみると良いかもしれません。

先人の調査所感

なお,興味深い調査所感が以下にあります。実行速度が半分になる可能性があるのはたしかに厄介なのと,図を含めたファイルサイズが今の所の懸念点というのは有益な情報でした。
qiita.com

実際に書いてみよう

Jupyterのような使い方をわかっている前提で書きますが,要はテキスト用の箇所とコードを記述する用の箇所を切り替えているだけなのではじめての人でもすぐ馴染めると思います。

ファイルの作成

ライブスクリプトの拡張子はです。MATLAB LIVE Scriptの略なんでしょう。
Control+Nで作成し保存時に拡張子を指定するか,GUIメニューでライブスクリプトを選択すれば良いです。
なお,「edit **.mlx」というふうにコマンドラインで実行しても作成できるそうな。

よく使うショートカット

起動してぽちぽちいじっているとコードを書くところと説明を書くところがこのように違うことがわかります。
f:id:ossyaritoori:20180416224717p:plain

具体的に使いそうなショートカットは

  • Alt+Enter:コード/テキストの切り替え
  • Ctrl+Alt+Enter : ブロックの改行。段落替え。
  • Ctrl+Alt+T:標準テキスト
  • Ctrl+Alt+H:見出しテキスト
  • Ctrl+Alt+L:タイトルテキスト
  • Ctrl + Enter

となっています。

流れの例として,
1. Alt+Enterで「テキストモードにする」
1. Ctrl+Alt+Hで「見出し」モード。見出しを書く。
1. Ctrl+Alt+Tで「本文」モード。本文を書く。
1. Alt+Enterでコードに切り替えたり,そのまま説明を書くことを繰り返す。
1. Ctrl+Enter で段落を実行。問題なければ Ctrl+Alt+Enter で段落改行。

こんな感じでしょうか?
ライブ スクリプトのセクションの実行 - MATLAB & Simulink - MathWorks 日本

図や実行結果を載せる

普段,コマンドウィンドウに出てくる実行結果や図は右側のスペースに出てきます。
f:id:ossyaritoori:20180416230043p:plain

図をスクリプト内に表示させたいときは[表示] タブの [レイアウト] セクションで、[インラインで出力] ボタンをクリックします。
ライブ エディターでライブ スクリプトを作成 - MATLAB & Simulink - MathWorks 日本

一応実行コードを載せときます。

% sampling
ST = 0.01;

% Simulation Length
len = 100
time = 0:ST:ST*(len-1);

figure
plot(time)

数式を挿入

数式を呼び出すショートカットはこちら。「挿入」タブからも呼べます。

  • Ctrl+Shift+E: 対話式数式エディタ(要はWord風)
  • Ctrl+Shift+L: Latex 形式での挿入

Latex形式はマクロも難しそうだし,ちょっと不便しそうです。
流石に行列を書くめんどくささには理解を示してくれたらしく,以下のようにコマンドを呼ぶことで本家より若干簡略化して書けます。

{\bf A} = \pmatrix{a & b \cr c & d}

f:id:ossyaritoori:20180416235758p:plain

以前にも似たようなことをやりましたね。Jupyterならマクロを書けるんですが…
ossyaritoori.hatenablog.com

エクスポート

個人メモではここまでで十分ですがこれを誰かと共有する際にはできるだけ文章形式で出力したいです。
ライブ スクリプトの共有 - MATLAB & Simulink - MathWorks 日本

正規手段で

[ライブ エディター] タブで、[保存] 、 [PDF にエクスポート]、[保存] 、 [HTML にエクスポート]、または [保存] 、 [LaTeX にエクスポート] を選択します。

PDFでは以下のような感じになります。
f:id:ossyaritoori:20180417001812p:plain
明朝っぽいフォントで出るんですね。

なお,Latexで出力しても行列まわりの変な記法は補正されずにErrorが出ます。
手間が必要な分,使い回しには注意が必要です。
コンパイル後の見た目はこんなん。
f:id:ossyaritoori:20180417002439p:plain

Microsoft Print to PDF

上記のプラグインがあるならば,「印刷」から上のプラグインを選択してノートを印刷できます。
f:id:ossyaritoori:20180417001343p:plain

こちらの方がゴシックぽい字体で字体としては好み。ただしページ番号が出ないです。

総括

Jupyterと比べてLatex周りはやや貧弱なきらいもありますが,直接PDFがきれいに出力できる点などは良い点です。
いろいろ考えた結果,MATLABというソフトから動かずにこういった文書作成ができるのはメリットなのでそれを享受するのは悪くないかと。
つまり資料作成用としてはまぁまぁ使えるのではないのでしょうか。