mcpField
M
matlab-fit-curve

matlab-fit-curve

github.com/matlabデータ・データベース1.2k44 回インストール1 日前に更新
リポジトリ

matlab-fit-curve について

MATLAB の Curve Fitter アプリで、曲線や曲面を対話的にフィッティングする手順を案内するスキルです。フィット形式の探索、オプション調整、結果の確認やエクスポートを、MATLAB のリリースとワークフローに応じて支援します。

主な機能

  1. 01曲線・曲面のフィット形式を探索
  2. 02フィットオプションを対話的に調整
  3. 03フィットを数値とグラフで確認
  4. 04セッション内で複数のフィットを比較
  5. 05フィットをエクスポートしセッションを保存

活用シーン

  1. 01形式が未定の段階でモデルを探索
  2. 02目視で確認しながらデータ点を除外
  3. 03フィットを Simulink ルックアップテーブルへ出力
  4. 04保存済みの `.sfit` セッションから作業を継続

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/matlab/matlab-agentic-toolkit --skill matlab-fit-curve

インストール後、Claude Code で/matlab-fit-curveを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

manifest.yaml
references/
api-reference.md
curve-fitter-layout.md
interpreting-fit-results.md
scripts/
CurveFitterAppController.p
getFittypeTable.p

詳細

インタラクティブな曲線および曲面のフィッティング

Curve Fitting Toolbox の一部である Curve Fitter アプリを使って、インタラクティブに曲線および曲面をフィッティングする方法を案内します。データの選択、フィットタイプの検討、フィットオプションによる変更、フィット結果の視覚的・数値的な確認、結果のエクスポートまで、アプリ内のワークフロー全体を説明します。

使用する場面

コードを使わないフィッティング

  • コードを書かずに曲線や曲面をフィッティングしたいユーザー
  • まずインタラクティブに作業し、後からコードを生成してコマンドラインで続けたいユーザー

インタラクティブな検討

  • 最適なモデルがわからない場合にフィットタイプを検討する
  • 視覚的なフィードバックを見ながらフィットを繰り返し調整する
  • 1 回のセッションで複数のフィットを管理し、比較する
  • 利用可能なフィットタイプ、オプション、機能を確認する

アプリ固有の機能

  • フィット結果を Simulink のルックアップテーブルにエクスポートする(アプリでのみ利用可能)
  • 視覚的なフィードバックを見ながら、データ点や領域を繰り返し除外する
  • 利便性や共同作業のために、保存済みのセッション(.sfit)を読み込む、または続きから作業する

使用しない場面

CLI ワークフロー(アプリを使用しない)

  • すでにコードを書いており、アプリを使いたくない場合
  • 独自のスクリプトや関数で fit()、fittype()、fitoptions() を直接使用する場合
  • 使用するフィットタイプ、データ、オプションがすでに決まっており、コードを使いたい場合
  • アプリで管理するのが難しいほど多数のフィットを行う場合

スプラインのワークフロー

  • スプラインの CLI 関数(csapi、csaps、fnbrk など)
  • splinetool または bspligui アプリ

その他のツールと分野

  • MATLAB の基本関数 — interp1、pchip、scatteredInterpolant、griddedInterpolant、spline、smoothdata
  • Basic Fitting ツール — 多項式、スプライン補間、pchip 補間。MATLAB の Figure に組み込まれています
  • Statistics and Machine Learning Toolbox — 統計モデリング、交差検証、データセットの分割、独立したテストデータ(fitlm、fitnlm、cvpartition)
  • Optimization Toolbox — Optimization Toolbox の関数(lsqnonlin、fmincon、lsqcurvefit、lsqlin)を使用するすべてのワークフロー

CLI の方が適切な場合は、アプリのワークフローを提案しないでください。どちらのセクションにも明確に当てはまらない場合は、次の基準を参考に判断してください。

基準推奨理由
ユーザーがフィット結果を「比較」したいと言っている状況による曲線を視覚的に比較する場合 -> CLI(同じ座標軸に重ねて表示)。適合度指標を比較する場合 -> アプリ(フィットのテーブル)。インタラクティブに調整する場合 -> アプリ。
ユーザーが単一のフィット結果を可視化したいだけの場合CLICLI でのプロットが適しています
ユーザーが複数のフィット結果を同じ座標軸に重ねて表示したい場合CLIアプリではフィット結果は別々の Figure にのみ表示されます
ユーザーが視覚的な確認によって外れ値を除外する必要がある場合アプリポイントをクリックして除外する方が、インデックスを計算するより簡単です
ユーザーが正式な検証データを必要とする場合アプリアプリは検証データを明示的にサポートしています

ユーザーの指示を常に優先してください。 ユーザーが CLI コードを明示的に求めている場合は、アプリ内ワークフローの途中であっても、CLI コードを作成してください。また、コントローラーがリクエストを実行できない場合は、エージェントから代替案として CLI を提案してもかまいません。

ワークフローの途中で、アプリと CLI を自発的に切り替えないでください。上記の表を確認してもユーザーの意図が明確でない場合は、アプリでインタラクティブに作業する方法と、コードを使う方法のどちらを希望するか尋ねてください。

ユーザーが、自分でワークフローを実行する方法、UI で機能を見つける方法、またはアプリで機能が利用できるかどうかを尋ねた場合は、レイアウトと機能の場所の詳細について references/curve-fitter-layout.md を参照してください。

必ず守るルール

リリースの互換性
  1. R2021b 以前では cftool、R2022a 以降では curveFitter を使用してください — 同じワークフローで両方を使用するようユーザーに指示してはいけません。R2022a 以降でも、ユーザーが習慣で「cftool」と呼ぶことがよくありますが、ユーザーの用語にかかわらず、curveFitter またはコントローラーを使用してください。

  2. CurveFitterAppController(scripts/CurveFitterAppController)には R2022a 以降が必要です — それ以前のリリースではエラーになります。R2021b 以前では、エージェントはプログラムからアプリの状態を読み書きできません。プログラムから操作できるのは、cftool(x, y)、cftool(x, y, z) などの cftool の入力引数だけです。フィットタイプの変更、点の除外、エクスポートなど、その他のすべての操作は、ユーザーがアプリの UI から行う必要があります。cftool に関する一般的な知識をもとにユーザーを案内し、操作を代行すると約束してはいけません。フィットタイプの確認には、getFittypeTable() を引き続き単独で使用できます。R2022a 以降では、バージョンチェックを内部で処理するコントローラーの open* メソッドを優先してアプリを起動してください。R2022a より前のリリースでは、最初に制約を明確にしてください。このリリースのエージェントワークフローでは、アプリの起動やデータを指定したアプリの起動以外はすべてサポートされていません。UI の操作方法は案内できますが、ユーザーに代わって操作することはできません。代替手段として、CLI によるフィッティングを提案してください。ユーザーに制約を一つずつ発見させないでください。

    R2022a より前のリリースに関する重要事項: これらのリリースでは、以下のすべてが該当します。

    • アプリは「cftool」または「Curve Fitting Tool」とのみ呼んでください。「Curve Fitter」と呼んではいけません
    • コントローラーのメソッド名(setExclusionRule、setFittype など)には一切触れないでください。これらはこのリリースには存在しません
    • アプリ内で操作を実行できるとほのめかしてはいけません。実行できないためです
    • ユーザーが R2021b 以前で「Curve Fitter」と言った場合は、「お使いの[リリース]では Curve Fitter アプリを利用できません。代わりに cftool を使用します。」と伝えてください
API の使用
  1. コントローラー API を介してアプリのワークフローを進めてください。CLI に自発的に切り替えないでください — アプリが開いている、またはユーザーがアプリで作業している場合は、フィッティング、比較、除外の作業をコントローラー経由で行います。アプリでの操作の代わりに、CLI の fit() コードを自発的に生成しないでください。立ち止まって、UI 要素をクリックするようユーザーに指示しないでください。例外:
    • ユーザーが CLI コードを明示的に求めた場合(ユーザーの指示が常に優先されます)
    • コントローラーに要求された操作を実行する API がない場合 — まず references/curve-fitter-layout.md を参照して、アプリの UI を使う方法をユーザーに案内してください。アプリでその機能を利用できない場合、またはワークフローが「使用しない場合」に記載された曖昧なシグナルに近づいている場合に限り、代替手段として CLI を案内してください
    • ユーザーが UI で自分自身で操作したいと明示した場合
  2. 効率化のための内部 CLI 実行は許可されています — エージェントは、ユーザー向けのコードを生成したり、応答で言及したりせずに、簡単な確認(例:複数のフィットタイプの調査、利用可能なフィットオプションの確認)のために fit()、fittype()、fitoptions() などを内部で実行できます。これは、ユーザー向けのコードを生成することとは異なります。
  3. コントローラーメソッドでエラーが発生した場合は、エラーを読み取って対応してください — メッセージには情報が含まれており、構文の修正方法が示されているか、ユーザーへの案内に役立ちます。
  4. 利用可能なフィットタイプを調べるには getFittypeTable()(scripts/getFittypeTable)を使用してください — フィットタイプ名が使えるか推測したり、組み込みのフィットタイプがあるのにカスタム方程式を優先したりしないでください。特定のフィットタイプを調べるには、fittype オブジェクトを作成し、そのメソッド(formula、coeffnames、islinear など)を使用してください。fittype オブジェクトにパブリックプロパティはありません。データが特定のモデルに「似ている」または「適している」と決めつけたり述べたりしないでください。代わりに、データの特性や目標についてユーザーに尋ねてください。
  5. 状態に依存する操作を行う前に、必要最小限の関連状態を読み取ってください — 前提条件を確認せずにコマンドを実行しないでください(例:曲線専用のフィットタイプを設定する前に次元数を確認する、エクスポート前にフィットが存在することを確認する)。すべての操作でアプリの状態全体を読み取る必要はありません。各操作で必要な情報だけを読み取ってください。
結果の報告
  1. フィット品質に関する主観的な価値判断は決して行わないでください。ただし、事実に基づく解釈は可能です — R² だけでなく、関連する適合度指標をすべて報告し、解釈はユーザーに委ねてください。統計的特性やトレードオフについて、事実に基づいた客観的な記述をすることは認められており、推奨されます。こうした記述は、主観的な品質判断とは異なります。ユーザーが明示的に求めない限り、別のフィットタイプや方法を提案しないでください。禁止される用語、許可される事実に基づく記述、品質について直接質問された場合の対応方法の全一覧は、references/interpreting-fit-results.md を参照してください。
エージェントの動作
  1. 行動する前にリファレンスを読み込む(無言で) — これらは任意ではなく必須です。積極的に読み込んでください。リファレンスが必要かどうか迷ったときは、読み込みましょう。リファレンスの読み込みについて、ユーザー向けのテキストで説明したり言及したりしないでください(ルール 10 を参照):
    • セッション内で初めてコントローラーのメソッドを呼び出す前に references/api-reference.md を読み込む
    • フィット結果を報告、比較、説明する前に references/interpreting-fit-results.md を読み込む
    • アプリの機能、UI の場所についての質問に答える前、または要求された操作に対する API がコントローラーにない場合に references/curve-fitter-layout.md を読み込む
    • 範囲: curve-fitter-layout.md は R2022a+(Curve Fitter)のみを対象としています。cftool にどのような機能が存在するかを示すことはできますが、UI 上のどこに配置されているかは示せません。cftool の UI の場所については、一般的な知識に頼り、不確かな場合は推測せずその旨を伝えてください。
    • リファレンスに記載されていない UI 要素を説明しない — アイコンがどのような見た目か、ボタンがどこにあるか分からない場合は、詳細をでっち上げるのではなく、「正確な場所は確かではありません」と伝えてください。
  2. コントローラーはユーザーからは見えません — コントローラー、API、リファレンスファイルに関するすべては内部実装の詳細です。ユーザー向けの応答では:
    • 重要 — 最もよくある違反: 「コントローラーのスクリプトをパスに追加します」「コントローラーを使用して」「コントローラーの X メソッド」「プログラム的に」。これらは、ナレーション、ステータス更新、思考の声出しを含む、あらゆるユーザー向けテキストに現れてはなりません。
    • コントローラーのクラス名、メソッド名、API 構文に言及しないでください(例:「setExclusionRule を使います」と言わず、「それらの点を除外します」と言う)
    • 内部実装の手順をナレーションしないでください — 「コントローラーのスクリプトをパスに追加します」「コントローラーが利用可能です」「コントローラーを使ってフィットタイプを設定します」「コントローラーの openAppWithData メソッドを使います」などと言わないでください。これらは目に見えない仕組みです。ユーザーの視点では、あなたは単に Curve Fitter アプリで操作を実行しているだけです。
    • リファレンスファイルの名前や読み込みに言及しないでください(例:「API リファレンスを確認します」と言わない)
    • リファレンスを読み込む行為自体が目に見えません — リファレンスファイルを読み込む前に「確認します」「読みます」「調べます」と言わないでください。無言で読み込んで進めてください。
    • 「コントローラー」という概念に言及したり、特定のリリースにそれが存在するかしないかを説明したりしないでください
    • アプリの「プログラム的な」制御に言及しないでください — 自然に操作を提案するだけにしてください(例:「フィットタイプを変更しますか?」と言い、「プログラム的にフィットタイプを設定できます」とは言わない)
    • 内部的なリリースの理由を説明しないでください(例:「このリリースではコントローラーが利用できないため」と言わず、適切にユーザーを案内する)
    • 要求された操作に対するコントローラー API が存在しない場合は、references/curve-fitter-layout.md を使ってアプリの UI を通じてユーザーを案内してください
    • プログラム的な回避策をでっち上げないでください
  3. 曖昧な場合は行動する前に確認する — ユーザーの要求が曖昧または不十分な場合(例:「あの点を何とかして」「これを直して」「データをきれいにして」)、行動する前にユーザーが何を望んでいるかを確認してください。たとえば、点を除外する場合は、どの点を、またはどの基準を使うかを尋ねてください。ユーザーの確認なしに任意の除外基準(2σ、isoutlier など)を適用しないでください。ユーザーが外れ値の処理や対処について一般的に尋ねた場合(具体的に除外を求めていない場合)は、関連する選択肢を提示してください。除外(対話的またはルールベース)はフィットから点を削除し、ロバストフィットは外れ値を削除せずに重みを下げます。ユーザーが具体的に点の除外を求めた場合は、除外方法のみを提示してください — ロバストフィットを代替として提案しないでください。アプリの状態が予期せず変化した場合(フィットが消える、セッションがリセットされる)、自律的に修正措置を取るのではなく、観察した内容を説明し、どう進めるかを尋ねてください。
  4. 応答ではリリースに適した用語を使用する — R2022a+ では、常にアプリを「Curve Fitter」と呼んでください(「cftool」ではなく)。ユーザーが R2022a+ で「cftool」と言った場合は、その用語を認めたうえで、cftool はこのリリースでは利用できないこと、Curve Fitter を使用することを明確にしてください。R2021b 以前では、アプリを「cftool」または「the Curve Fitting Tool」と呼んでください — 「Curve Fitter」や「Curve Fitter app」は決して使わないでください。ユーザーが R2021b 以前で「Curve Fitter」または「curveFitter」を開くよう求めた場合は、それがこのリリースでは利用できないこと、cftool を使用することを明確にしてください。
  5. ユーザー向けテキストではライブラリのモデル名ではなく表示名を使用する — ライブラリのモデル名(exp1、poly2、rat11、lowess、loess、smoothingspline)はプログラムでの使用(コントローラー呼び出し、スクリプト)専用です。ユーザー向けの応答では、Fit Type Gallery の表示名を使用してください:「Exponential (1 term)」、「Polynomial (degree 2)」、「Rational (1/1)」、「Smoothing Spline」、「Lowess (Linear)」など。
  6. 会話の記憶よりもアプリのライブ状態を信頼する — 会話の earlier で真であったことよりも、常に getter 呼び出しの結果を信頼してください。行動する前に状態を読み取ってください。状態がユーザーの説明と矛盾する場合は、実際の状態を事実として報告してください。予期しない状態変化をバグと診断しないでください — ユーザーはターンの間にアプリを変更できます。
  7. WARNING 状態と収束メッセージを報告する — フィット操作の完了後、フィットに WARNING 状態または収束メッセージがある場合は、ユーザーに報告し、対処を希望するか尋ねてください。無言で無視したり、自動的に「修正」したりしないでください。例外: ユーザーがすでに警告を認識しているか、明示的に却下している場合。
  8. インポートまたはエクスポートの前にユーザーに確認する — データをアプリに取り込む、またはアプリから出すすべての操作は、実行前にユーザーの明示的な確認が必要です。何をするのか(ファイル名、変数名、ブレークポイント値など)と、なぜ確認するのか(何が曖昧か、どのような選択をしたか)を述べてから、承認を待ってください。具体的なシナリオ:
    • セッションの保存 — 保存する前にセッション名とファイルパスを述べてください(例:「セッションを C:\Users\... に myfit.sfit として保存します。よろしいですか?」)
    • セッションの読み込み — .sfit ファイルがちょうど 1 つ検出された場合は、そのまま読み込めます。複数存在し、ユーザーの要求が曖昧な場合は、見つけたものを述べ、選択案を提示してください(例:「セッションファイルが複数あります — analysis.sfit が正しいものでしょうか?」)。確認するまで読み込まないでください。
    • フィット/検証データの選択 — プロンプトまたはワークスペースから正しい変数が明確な場合は、進めてください。複数の候補変数がある場合(例:x、x2、y、y2)、曖昧さを説明し、選択案を提示し、行動する前に確認してください(例:「ワークスペースに数値変数がいくつかあります — フィットデータとして x と y を使用します。よろしいですか?」)。確認するまでアプリを起動したりデータを選択したりしないでください。
    • 変数をワークスペースにエクスポート — 行動する前に、変数名を提案し、何がエクスポートされるかを説明してください(例:「フィットオブジェクトを fitresult として、適合度を gof としてワークスペースにエクスポートします。よろしいですか?」)
    • Simulink LUT へのエクスポート — 使用する予定のブレークポイント値/方式を述べ、実行前に確認してください。ユーザーがブレークポイントを指定していない場合は、妥当な値を提案し、承認を待ってください。 ルール 16 は、図へのエクスポート、アプリからのコード生成、新しいセッションの開始には適用されません。これらの操作は破壊的ではないか、アプリレベルのダイアログがすでに組み込まれています。

ワークフロー

Fitting Workflow:
- [ ] Step 1: Select data
- [ ] Step 2: Choose a fit type
- [ ] Step 3: Choose fit options
- [ ] Step 4: Fit
- [ ] Step 5: Evaluate and visualize results
- [ ] Step 6: Iterate and compare
- [ ] Step 7: Export, save, or share results

このワークフローはフィットごとに適用されます。ほとんどのセッションではフィットは 1 つか数個ですが、ステップ 6 でフィットを追加して手法を比較できます。

開始方法
  • MATLAB ツールストリップの「アプリ」タブにある「アプリ」ギャラリーから「Curve Fitter」を選択します。
  • R2021b 以前のリリースの場合:cftool(...)(curveFitter は使用しないでください)
  • R2022a 以降のリリースの場合:curveFitter(...)(cftool は使用しないでください)

どちらのコマンドも入力引数の構文は同じです。

  • curveFitter() — データなしでアプリを起動するか、すでに開いているアプリにフォーカスします。
  • curveFitter(x, y, z, w) — データを指定してアプリを起動するか、すでに開いているアプリに新しいフィットを作成します。引数を省略するには [] を指定します(たとえば、重み付き曲線フィッティングでは (x, y, [], w) を使用します)。
  • curveFitter('file.sfit') — 保存済みのセッションを読み込みます(.sfit ファイルである必要があります)。

注: エージェント型ワークフロー(R2022a 以降)では、curveFitter(...) を直接呼び出す代わりに、コントローラーの openAppWithData() と openSession() メソッドを使用してください。これらのメソッドは、起動時のアラートダイアログを自動的に検出して閉じ、報告用のアラートテキストを返します。

プログラムによる制御

エージェント型ワークフローで読み書き API にアクセスするには、CurveFitterAppController(scripts/CurveFitterAppController)のインスタンスを作成します。R2022a 以降でのみサポートされています。完全な API については references/api-reference.md を参照してください。以下の手順で参照されているコントローラーメソッドは、すべてここに記載されています。

アプリの起動: openAppWithData() または openSession() を使用して、データまたはセッションファイルを指定してアプリを起動します。これらのメソッドは、起動待機、アプリハンドルの管理、アラートダイアログの自動終了を処理します。返された alertText は必ず取得してください。空でない場合は、先にユーザーに報告してから続行します。

関連するコントローラーメソッド:

  • openApp()、openAppWithData()、openSession()、closeApp()
ステップ 1:データの選択

ワークスペース変数からフィッティングデータを割り当てます。必要に応じて、独立したフィット評価のための検証データを追加し、除外ルールを定義するか、個々の点を除外します。

関連するコントローラーメソッド:

  • selectFittingXData()、selectFittingYData()、selectFittingZData()、selectFittingWData()
  • selectFittingXDataFromTable()、selectFittingYDataFromTable()、selectFittingZDataFromTable()、selectFittingWDataFromTable()
  • getFittingDataVariableNames()、isSurfaceFit()
  • selectValidationXData()、selectValidationYData()、selectValidationZData()
  • selectValidationXDataFromTable()、selectValidationYDataFromTable()、selectValidationZDataFromTable()
  • getValidationDataVariableNames()
  • setExclusionRule()、getExclusionRules()、clearAllExclusionRules()
  • toggleInteractiveExclusions()、getInteractiveExclusions()、clearAllInteractiveExclusions()
ステップ 2:フィットタイプの選択

選択したデータに基づいてフィットタイプを選択します。組み込みのライブラリモデルには、回帰(多項式、指数、べき乗、フーリエ、ガウスなど)、補間、平滑化の各フィットタイプがあります。別ファイルで定義された方程式を含む、カスタムの線形方程式と非線形方程式もサポートされています。

現在のリリースで使用可能なすべての組み込みフィットタイプを確認するには、getFittypeTable()(scripts/getFittypeTable)を実行します。次元がわかっている場合は、"curve" または "surface" を渡して絞り込めます。返されるテーブルには category 列が含まれます。カテゴリ "library" は回帰フィットタイプを指します。特定のフィットタイプを調べるには、fittype オブジェクトを作成し、そのメソッド(formula、coeffnames、islinear など)を使用します。fittype オブジェクトにはパブリックプロパティがありません。

関連するコントローラーメソッド:

  • setFittype()、getFittype()
  • getFittypeTable()(ユーティリティスクリプト)
ステップ 3:オプションを選択する

フィットの品質や動作を調整したい場合を除き、任意です。特定のフィットタイプで利用可能なオプションを確認するには、MATLAB で fitoptions(fittypeString) を呼び出します。これにより、設定可能なプロパティとその現在値/デフォルト値を示す fitoptions オブジェクトが返されます。

関連するコントローラーメソッド:

  • setFitOptions()、getFitOptions()
ステップ 4:フィットする

自動フィットが有効な場合(デフォルト)、データまたはフィットタイプが変更されると自動的にフィッティングが実行されます。手動モードが選択されている場合は、明示的にフィットを実行します。

関連するコントローラーメソッド:

  • runFit()
  • setAutoFit()、getAutoFit()
ステップ 5:結果を評価して可視化する

フィッティング後、フィットの状態を確認し、エラー、警告、収束に関する問題がないか調べます。適合度の指標を確認し、フィットを視覚的に点検します。該当し、関連性がある場合は、残差プロット、等高線プロット、予測境界を追加します。

関連するコントローラーメソッド:

  • getFitState()、getFitStatusMessages()
  • getGoodnessOfFit()、getGoodnessOfValidation()
  • getFormula()、getCoefficientNames()、getCoefficientValues()、getCoefficientConfidenceIntervals()
  • getResultsPanelText()
  • getFitInformation()
  • setResidualsPlotVisibility()、getResidualsPlotVisibility()
  • setContourPlotVisibility()、getContourPlotVisibility()
  • setPredictionBoundConfidenceLevel()、getPredictionBoundConfidenceLevel()、clearPredictionBounds()
  • setFitPlotVisibility()、getFitPlotVisibility()
  • setLegendVisibility()、getLegendVisibility()
  • setGridVisibility()、getGridVisibility()
ステップ 6:反復して比較する

満足できない場合は、フィットタイプ、オプション、または除外を調整して現在のフィットを反復します(ステップ 2~5 を繰り返します)。複数の方法を比較するには、追加のフィットを作成します。それぞれのフィットは、独自のデータ、フィットタイプ、オプション、結果を個別に保持します。

関連するコントローラーメソッド:

  • createNewFit()、duplicateFit()
  • selectFit()、renameFit()、deleteFit()
  • getAllFitNames()、getFitName()
  • getAllFitInformation()
ステップ 7:結果をエクスポート、保存、または共有する

結果をエクスポートして他のワークフロー(Simulink、CLI スクリプト)に移行したり、後で使用するためにセッションを保存したり、他のユーザーと共有したりします。

関連するコントローラーメソッド:

  • exportFitToWorkspace()
  • exportToFigure()
  • generateCode()
  • exportToSimulinkLUT()、exportToSimulinkLUTEvenSpacing()、launchOptimizedLookupTableWizard()
  • saveSession()、saveSessionAs()
  • hasUnsavedChanges()、getSessionInfo()
  • openSession()、startNewSession()

効率的なパターン

  • createNewFit() とデータの再選択よりも duplicateFit() を優先する — 同じデータを使用する比較用フィットを作成する場合、複製するとデータだけでなく、現在のフィットに関するすべての情報が保持されます。保持されるのは、名前(末尾に「copy N」が追加され、N は増加します)、フィッティングデータ、検証データ、フィットタイプ、フィットオプション、除外、可視化設定です
  • 変更を加える前に現在の状態を読み取る — フィットタイプの切り替えやオプションの変更の前に、現在の指標と設定を読み取り、結果を以前の状態と比較できるようにします
  • 事前に状態を読み取ることで、エラーからの復旧を繰り返す事態を防ぐ — 前提条件(データの次元、フィットの有無、フィットの状態)を確認してから、それらが満たされていないとエラーになる操作を試みます

規約

結果の報告
  • 関連するすべての適合度指標(SSE、R-square、Adjusted R-square、RMSE、DFE)を報告します
  • 検証データがある場合は、検証指標も含めます
  • FitState を報告する際は、次のように訳します:GOOD →「Complete」、WARNING →「Warning」、ERROR →「Error」、INCOMPLETE →「Incomplete」。フィット状態のラベルとして「Good」は使用しないでください。ユーザーが品質に関する評価だと解釈するおそれがあります
  • フィットの品質を主観的に評価しないでください。数値とその背景を示します
  • 指標をユーザーに提示、比較、説明する方法については、references/interpreting-fit-results.md を参照してください
ワークフローの進め方
  • 複数の手順を要する操作や複雑な操作では、まず現在の状態を把握し、必要なコマンドと入力を特定してから、順番に実行します
  • フィットの改善は、多次元的な問題です — ユーザーがフィットの改善や問題への対処を求めている場合、主な調整項目は、フィットタイプの選択(または複数のフィットタイプを試すこと)、フィットオプション(開始点、境界、アルゴリズム、ロバストフィッティング)、除外です。いずれか一つだけでなく、すべてを考慮してください。通常は、除外とデータのクリーニングを先に行い、次にフィットタイプを選択し、その後フィットオプションを調整します。ただし、ユーザーはどの順序でも進めることができます
  • 目的が曖昧な場合は、フィッティングの前にデータを調べます — ユーザーがフィットタイプや方法を指定していない場合は、提案の参考にするため、データを目立たない形で分析します(次元、範囲、分布、明らかなパターン)。調査の程度は曖昧さに応じて調整します。「多項式をフィットして」のように依頼が明確な場合は調査不要ですが、「最適なフィットを見つけて」のような自由形式の依頼では調査が役立ちます
エージェントの動作
  • 詳しい説明ではなく、結果を伝えます — 操作の完了後は、(自動フィットによってフィットが完了した場合などの副次的な影響も含めて)その結果何が起きたかを説明します。ただし、直接的な結果を超える詳細や分析は加えないでください。たとえば、データの読み込みによってデフォルトのフィットが実行された場合は、フィットが完了したことを伝えますが、操作自体がフィッティングに関するものだったか、ユーザーから求められた場合を除き、指標、係数、品質評価は報告しません。可視化を切り替えた場合は、現在表示されていることを伝えますが、求められない限り、その内容を分析したり要約したりしません。回答の詳しさは、実行した操作に見合ったものにしてください。
  • フィットごとの適用範囲 — 指定がない限り、アプリのコントロールとコントローラーのメソッドは、現在選択されているフィットにのみ適用されます。フィッティングデータや検証データの選択、除外ルールの適用など、複数のフィットに適用するのが妥当な操作もあります。ユーザーの依頼で適用範囲が明示されておらず、操作が一つまたはすべてのフィットに適用される可能性がある場合は、実行前に現在のフィットのみか、すべてのフィットかを確認してください。
  • 技術的な説明を決してでっち上げないでください — 見覚えがなく、解決方法も分からない予期しないエラーが発生した場合は、観察できた動作を事実に基づいて報告してください。内部実装の詳細を捏造したり、アプリのコードのバグを診断したり、内部メソッドやクラスの名前を挙げたり、アクセス権限や設定の問題を推測したりしないでください。エラーに対する即時かつ明確なプログラム上の修正方法がない場合は、UIに切り替えて、レイアウトのリファレンスを参照し、アプリで手動で操作を行う方法をユーザーに案内してください。これは、既知の制限に限らず、予期しないエラーすべてに適用されます。
  • ワークフローはユーザーに委ねてください。次の手順を提案したり、推測したりせず、結果を提示して指示を待ちます。
  • ユーザーの指示に正確に従ってください。事前に確認せず、依頼されたこと以外の操作を追加しないでください。
  • リリースの内部的な判断理由や実装の詳細をユーザーに説明しないでください。ユーザーは自身のリリースについて把握しています。

Copyright 2026 The MathWorks, Inc.


コメント