matlab-create-live-script について
MATLAB Live Script をプレーンテキストの `.m` ファイルとして作成するスキルです。Live Editor で表示でき、チュートリアル、レポート、分析、バージョン管理向け文書に適しています。
主な機能
- 01`.m`形式でLive Editor文書を作成
- 02テキスト、セクション、数式の構成
- 03インライン図とタイルレイアウトの利用
- 04バイナリ`.mlx`から`.m`への変換
活用シーン
- 01MATLABのチュートリアルやレポートの作成
- 02図を含む分析ノートブックの作成
- 03バージョン管理するMATLAB文書の保守
- 04既存の`.mlx`文書の変換
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ matlab/ matlab-agentic-toolkit --skill matlab-create-live-scriptインストール後、Claude Code で/matlab-create-live-scriptを入力して読み込まれたか確認します。
同梱ファイルmanifest.yamlscripts/executeLiveScript.p
詳細
ライブスクリプト
MATLAB Live Editorでリッチドキュメントとして表示されるプレーンテキストの.mファイルです。バージョン管理に適しています — バイナリの.mlxは絶対に使用しないでください。
使用する場面
- チュートリアル、レポート、分析ノートブック、ドキュメント
- 図や数式をインラインで表示するインタラクティブな探索
- バージョン管理するコンテンツ(バイナリの
.mlxではなく、プレーンテキストの.m) - 既存のバイナリ
.mlxファイルをプレーンテキストの.mに変換する場合
使用しない場面
- リッチフォーマットを使わない通常のスクリプト
- 関数ファイル
- R2025aより古いMATLAB
.mlxからの変換
バイナリの.mlxファイルをプレーンテキストの.mライブスクリプトに変換するには、MATLABのコマンドウィンドウで以下を実行します。この手順は、生成される.mファイルには含まれません。
editor = matlab.desktop.editor.openDocument(mlxPath, Visible=0);
editor.saveAs(newMPath); % use .m extension
editor.closeNoPrompt;
ルール
- テキスト行には
%[text]を使用します —%だけの行は使用しないでください - 1つの段落は1つの
%[text]行に記述します — 行を途中で折り返さず、行幅はLive Editorに任せてください - 空の
%[text]行は使用しないでください — 不要な空白として表示されます - セクション見出し:単独行に
%%を記述し、次の行に%[text] ## Titleを記述します %[appendix]の直前にある空行1つを除き、ファイル内に空行を入れないでくださいfigureコマンドは使用しないでください — 図は暗黙的にのみ作成します- タイルレイアウトを使用する場合を除き、1つのセクションにプロットは1つまでにしてください
close allやclearは使用しないでくださいmfilenameは使用しないでください — ライブスクリプトでは意図したとおりに動作しません。ファイル名をハードコードするか、pwdを使用してください- リテラルテキストとして使う場合(Markdown構文として使う場合を除く)、次の文字をエスケープしてください:
*、_、[、]、`、\。また、数字の後の.と行頭の#もエスケープしてください - 数式には、単一の
$を使うインライン形式のみを使用します:$ a = \\pi r^2 $($$ ... $$は使用しないでください)。中央揃えの数式/ディスプレイ数式は、行を次のように囲みます:%[text]{"align":"center"} $ X(k) = \\sum\_{n=0}^{N-1} x(n) e^{-j2\\pi kn/N} $ - 数式内では、LaTeXコマンドにバックスラッシュを2つ(
\\sin、\\frac、\\pi)、Markdownの文字にバックスラッシュを1つ(\_、\*)使用します。リテラルテキストを扱うツール(Edit、Write、fwrite)を使用してください — Bashのヒアドキュメントは使用しないでください。引用符で囲んでも\\が\に変換され、LaTeXの数式が壊れます - 最後のリスト項目(箇条書きまたは番号付き)には
\を付けます - すべてのファイルの末尾に必須の付録を付けます
fprintfは避けてください — セミコロンを削除するか、disp()を使用してください。出力はコマンドウィンドウではなく、出力を生成したコードの下にインラインで表示されます- 出力は実行を検証するためではなく、読者の理解に役立つものにしてください
必須の付録
すべてのライブスクリプトの末尾には、次を記述する必要があります。
%[appendix]{"version":"1.0"}
%---
%[metadata:view]
% data: {"layout":"inline"}
%---
ライブスクリプトの読み取り(トークンの最適化)
ライブスクリプトファイルを読む際は、%[appendix]マーカーより後のすべてを無視してください。付録には埋め込み画像やメタデータが含まれており、有用な情報を追加しないままトークンを消費します。コードとテキストの内容はすべて、その前に記述されています。
フォーマットのリファレンス
| 構文 | 表示 |
|---|---|
%% | セクション区切り |
%[text] # Title | H1見出し |
%[text] ## Section | H2見出し |
%[text] **bold** | 太字 |
%[text] *italic* | 斜体 |
%[text] `code` | 等幅フォント |
%[text] <u>text</u> | 下線付きテキスト |
%[text] $ a = \\pi r^2 $ | インライン数式 |
%[text]{"align":"center"} $ ... $ | 中央揃え/ディスプレイ数式 |
%[text] - item | 箇条書き |
%[text] - last \ | 最後の箇条書き |
%[text] 1. item | 番号付きリスト |
%[text] 2. last \ | 最後の番号付き項目 |
%[text] [text](url) | 外部ハイパーリンク |
%[text] [text](internal:id) | アンカーへの内部リンク |
%[text] %[text:anchor:id] ... | アンカー(リンク先) |
%[text:tableOfContents]{"heading":"..."} | 目次 |
ID(アンカー、およびその他のIDを持つ要素): 使用できるのは英字、数字、アンダースコアのみです。ハイフンは使用できません — my-sectionは紐づかないため、my_sectionを使用してください。アンカーでは、行頭の%[text]の直後にマーカーを配置します。
表
%[text:table]
%[text] | Method | Result |
%[text] | --- | --- |
%[text] | Trapezoidal | 1.9998 |
%[text:table]
例
%[text] # Sinusoidal Signals
%[text] Examples of sinusoidal signals in MATLAB.
%[text:tableOfContents]{"heading":"Contents"}
%[text] - sine waves
%[text] - cosine waves \
x = linspace(0,8*pi);
%%
%[text] ## Sine Wave
plot(x,sin(x))
title('Sine Wave')
xlabel('x (radians)')
ylabel('sin(x)')
grid on
%%
%[text] ## Cosine Wave
plot(x,cos(x))
title('Cosine Wave')
xlabel('x (radians)')
ylabel('cos(x)')
grid on
%%
%[text] ## Summary
%[text] The sine and cosine functions are $ \\pi/2 $ radians out of phase.
%[appendix]{"version":"1.0"}
%---
%[metadata:view]
% data: {"layout":"inline"}
%---
よくあるパターン
数式を使った数学的な説明
%[text] ## Theory
%[text] The discrete Fourier transform is defined as:
%[text]{"align":"center"} $ X(k) = \\sum\_{n=0}^{N-1} x(n) e^{-j2\\pi kn/N} $
%[text] where $ x(n) $ are the time-domain samples and $ k $ indexes the frequency bins.
インラインコメント付きのコード
%%
%[text] ## Data Processing
%[text] Load and filter the data, then visualize the results.
data = load('measurements.mat');
filtered = lowpass(data, 0.5); % Apply lowpass filter
plot(filtered)
title('Filtered Data')
比較のためのタイル配置
図で左右の比較が重要な場合にのみ使用してください:
%%
%[text] ## Comparison of Methods
tiledlayout(1,2)
nexttile
plot(method1)
title('Method 1')
nexttile
plot(method2)
title('Method 2')
ワークフロー
- 計画 — タイトル、セットアップ、分析セクション、まとめ
- 作成 — テキストには
%[text]、セクションには%%を使用し、付録は末尾に配置します。リテラルテキストを扱えるツール(Edit、Write、fwrite)を使用してください。Bash のヒアドキュメント(cat > file <<EOF)は使用しないでください。引用符で囲んでも\\が\に変換され、LaTeX の数式が壊れるためです。 - 検証 (MATLAB が接続されている場合) — コードを
evaluate_matlab_codeで実行し、問題なく実行できることを確認します。実行時間を記録してください。出力の埋め込みには同程度の時間がかかります。 - 出力の埋め込み (任意、MATLAB が接続されている場合) —
executeLiveScript("<absolute-path>.m")を実行して、各セクションの出力(プロット、表示された値)を、生成したコードの隣にインラインで保存します。 - レンダリングの確認 (任意、MATLAB が接続されている場合) —
export("<absolute-path>.m", "<absolute-path>.html")を実行して、レンダリングされたドキュメントを近似した HTML を生成します。数式が組版されていること、図がインラインで表示されていること、%[text]ディレクティブがリテラルテキストとして漏れていないことなどを、読み戻して確認してください。完了したら.htmlを削除してください。これは検証用の生成物であり、納品物ではありません。
重要なのは作成のステップです。作成だけで、ユーザーが開いて実行できる有効なライブスクリプトが生成されます。検証、出力の埋め込み、レンダリングの確認は、MATLAB セッションが接続されている場合にのみ利用できる段階的な機能強化です。接続されていない場合は、作成の後で終了してください。出力の埋め込み後は、MATLAB によってファイルがディスクに書き戻されるため、さらに編集する前に再度読み込んでください。
executeLiveScript
このスキルの scripts/ フォルダーに同梱されています。初めて使用する前にパスに追加してください:
addpath(fullfile(skillRoot, "scripts")); % skillRoot = directory containing this SKILL.md
executeLiveScript(filePath) は、成功時に何も返しません。スクリプト内の実行時エラーは例外を発生させません。代わりに、スクリプトは "dataType":"error" ブロックとして付録に書き込みます。保存した .m を grep してエラーを見つけてください。
出力の埋め込みの前に検証を実行してください。 出力の埋め込み中にセルでエラーが発生すると、そのセルはエラーブロックになり、その後のセルの出力はファイルから削除されます。まず evaluate_matlab_code で実行してください。
出力の埋め込みで「Nested Live Editor execution」エラーが発生するか、検証にかかった時間を超えてハングする場合: MATLAB デスクトップを表示した状態でもう一度だけ試してください。それでも失敗する場合、作成時にディスクへ保存されたファイルは有効なままです。出力の埋め込みはスキップし、ユーザー自身にスクリプトを実行してもらってください。
チェックリスト
ライブスクリプトを完成させる前に、次の項目を確認してください:
- ファイルの拡張子が .m である
- セクションでは、
%%のみの行の後に%[text] ##が続いている - 空行や空の
%[text]行がない(%[appendix]の直前にある空行 1 行を除く) - 各段落は単一の
%[text]行である(強制的な折り返しをしない) - タイル配置の場合を除き、各セクションにプロットが 1 つある
- 箇条書きリストと番号付きリストの最後の項目がバックスラッシュで終わっている
- 保存したファイル内の LaTeX コマンドのバックスラッシュが二重になっている:
\\sin、\\frac、\\pi -
figureコマンドがない - 冒頭に
close allやclearがない -
mfilenameがない - 付録があり、正しい形式になっている
- 出力が開発者ではなく、読者に役立つ内容になっている
まだサポートされていない機能
今後のリビジョンで対応予定の軽微な機能:
- インタラクティブなコントロール(スライダー、ドロップダウン、数値入力)
- コード表示の非表示(ソースコードを隠す出力表示)
Copyright 2026 The MathWorks, Inc.