Communitygithub.com

MATLABおよびGNU Octave

MATLABまたはGNU Octaveの数値ワークフローを構築、レビュー、移行、安全に計画するためのスキル。配列、テーブル/時系列データ、テスト、プロジェクト、グラフィックス、MATファイル、Python相互運用をサポートします。

MATLABおよびGNU Octave とは?

このスキルは、MATLABとGNU Octaveの両方に対応した数値コード設計・レビュー支援エージェントです。まず、MATLAB R2026a(プロプライエタリ)とGNU Octave 11.3.0(GPLv3+)の製品・ライセンスの明確な区別を要求し、ユーザーの環境(リリース、インストール済み製品、プラットフォーム)を確認します。コードの静的レビューを徹底し、eval、system、Python統合(py.*、pyrun、pyrunfile)、MEX、MATファイルのロードなど、実行やコードロードを伴うすべての表面を安全境界として明示。非信頼の.mファイルや.mlx、MEXバイナリ、MATファイルの実行を禁止します。既定のワークフローは「ターゲットの明確化→静的インベントリ→コード形式選択→意味論の明示→テスト→実行計画→来歴記録」の7ステップ。言語・データチェックリストとして、スクリプト/関数/ライブスクリプトの扱い、1ベース・列優先の配列インデックス、暗黙的拡張と許容誤差、テーブル/タイムテーブルと欠損値、グラフィックスとエクスポート、MATファイルの安全な交換、プロジェクト・テストフレームワーク、Python統合(R2026aのCPython 3.9-3.13、matlabengine==26.1.12)などを網羅。さらに、ローカルヘルパーCLI(plan_batch_command、scan_m_code、validate_project_manifestなど)を提供し、ネットワーク不要で安全な静的解析・計画を実現します。Claude Code、Cursor、Codexなど、AIエージェントがコードレビューや移行計画を安全に実行するための包括的なガイドラインです。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/K-Dense-AI/scientific-agent-skills/tree/main/skills/matlab

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

MATLABおよびGNU Octave は何をしますか?

このスキルを使用して、数値コードの設計やレビュー、MATLABリリースの移行、再現可能なプロジェクトの準備、信頼できる実行計画の策定を行います。MATLABとGNU Octaveは異なる製品であり、互換性は部分的であり、ライセンスや動作を保証するものではありません。

製品とライセンスに関する注意点

  • MATLAB R2026aはプロプライエタリです。 MATLAB、MATLAB Online、特定のツールボックス、MATLAB Test、MATLAB Compiler、MATLAB Coder、Parallel Computing Toolbox、アドオンがインストール、ライセンス、または利用可能であると仮定しないでください。
  • MATLAB RuntimeはMATLABではありません。 MATLAB Compilerで作成された互換アプリケーションを実行します。任意のソースコードを実行したり、MATLAB Engine for Pythonをホストしたりすることはできません。成果物のビルドには、該当するライセンス済みコンパイラとソースで使用されるすべての製品が必要です。
  • GNU Octave 11.3.0はGPLv3+のもとで無料のソフトウェアです。 OctaveパッケージはMATLABツールボックスではありません。類似した名前がAPI、数値、グラフィックス、またはライセンスの同等性を意味するわけではありません。
  • ユーザーが実際に持っているランタイム、リリース、プラットフォーム、インストール済み製品、ライセンスのコンテキストを確認してください。unknownとして扱い、確認が取れるまで利用可能性を仮定しないでください。

Octave互換性 および 実行/製品境界 を参照してください。

絶対的な安全境界

信頼できない .m、.mlx、MEXバイナリ、MATファイル、プロジェクトの起動/シャットダウンアクション、パッケージインストーラ、または生成された成果物を決して実行しないでください。静的レビューは安全性を証明しません。

以下のものを実行またはコード読み込みの対象として扱います:

  • eval、evalin、assignin、テキスト由来の feval、str2func、コールバック、タイマー、アプリコールバック、動的に変更されたパス;
  • system、unix、dos、シェルエスケープ !、Java、.NET、Python(py.*、pyrun、pyrunfile)、MEX、ネイティブラブラリ;
  • mex、codegen、MATLAB Compiler、ビルドタスク、パッケージ/プロジェクトの起動、生成コード;
  • load、オブジェクトのデシリアライゼーション(loadobj、カスタムシリアライゼーション)、関数ハンドル、Java/Systemオブジェクト、MATファイルから到達可能なクラスコード。

.mlx はこのツールキットにとって不透明なアーカイブであり、MEXはネイティブ実行可能コードです。Python pickleを交換に使用しないでください。まず検査し、適切な場合は隔離し、明示的な承認を得た後、ユーザーが確認した実行可能ファイルとライセンスを起動してください。バンドルされたスクリプトは静的またはドライランツールです。MATLAB、Octave、Python Engine、コンパイラ、またはサブプロセスを起動することはありません。

デフォルトワークフロー

  1. ターゲットを明確にする。 MATLABリリースまたはOctaveバージョン、OS/アーキテクチャ、ベース製品と必要なツールボックス/パッケージ、期待される入出力、数値許容誤差、実行が許可されているかどうかを記録します。
  2. 静的にインベントリを取得する。 .m ファイル、不透明なアーティファクト、プロジェクトパス、必要な製品、MATヘッダーを実行前にスキャンします。
  3. コード形式を選択する。 自動化には arguments ブロックを持つ関数を優先します。スクリプトは制御されたオーケストレーションに、ライブスクリプトはレビューされた対話型ナラティブに使用します。
  4. セマンティクスを明示する。 形状、クラス、単位、欠損値ルール、インデックス、暗黙的拡張、RNGアルゴリズム/シード、許容誤差、出力形式を記録します。
  5. 隠れ状態なしでテストする。 フィクスチャは合成し、パスはプロジェクトローカルに、グラフィックスは決定論的に、テストはベースワークスペースの残留物から独立させます。
  6. 実行を計画する。 argv計画を生成し、起動/パス効果とライセンスをレビューし、これらのヘルパーの外部で明示的な承認後にのみ起動します。
  7. 来歴を記録する。 名前付き入力/コードのハッシュを取得し、リリース、製品、RNGポリシー、許容誤差、コマンド計画を環境をダンプせずに記録します。

言語とデータのチェックリスト

スクリプト、関数、ライブスクリプト

  • スクリプトは呼び出し元/ベースのワークスペースを共有し、変数を残します。関数はローカルワークスペースと明示的な入出力を持ちます。
  • ライブスクリプト(.mlx)はコードとリッチな出力を混在させますが、プレーンテキストのレビュー対象ではありません。レビュー済みコードは静的検査のために .m にエクスポートしてください。
  • clear all、広範囲な addpath(genpath(...))、pwd への依存、グローバル変数、および暗黙の名前のシャドウイングを避けてください。プロジェクトルートと fullfile を使用します。
  • arguments ブロックでサイズ、クラス、値を検証します。型宣言は入力を変換できることに注意してください。バリデータは変換せずにチェックします。
  • メイン関数ファイルはメイン関数名と一致させる必要があります。ローカル関数はファイル内でのみプライベートです。R2024a以降、条件付きコンテキスト外のスクリプトのどこにでも配置できます。
function y = scaleSignal(x, options)
arguments
    x (:,1) double {mustBeFinite}
    options.Scale (1,1) double {mustBeFinite, mustBeNonzero} = 1
end
y = x .* options.Scale;
end

プログラミング を参照してください。

配列、インデックス、数値処理

  • MATLABは1ベース、列優先のインデックスを使用します。A(i,j)、A(k)、A(:,j)、A{...}、A.(name) は異なるセマンティクスを持ちます。
  • *、/、\、^ は行列演算です。ドット形式は要素単位です。inv(A)*b ではなく A\b を使用します。
  • R2016b以降、互換性のある次元は暗黙的に拡張されます。意図しない外部結果を形成する可能性のある操作の前に、意図した形状をアサートします。
  • 出力サイズがわかっている場合は事前割り当てを行いますが、巨大なテンポラリや読みにくいコードを犠牲にしてベクトル化しないでください。timeit またはプロファイラで測定します。
  • 浮動小数点結果は、ドメインに適した絶対的・相対的許容誤差で比較し、一括の == や eps の魔法の倍数は使用しないでください。
  • 乱数アルゴリズムとシードの両方を固定します。独立した並列作業には名前付き RandStream サブストリームを使用し、再現性の主張のために時間ベースの rng("shuffle") を使用しないでください。

配列 および 数学 を参照してください。

テーブル、タイムテーブル、欠損値

  • table は名前付きの同じ高さの変数を持ち、異なる型を持つことができます。T(rows,vars) はテーブルを返し、T{rows,vars} は内容を抽出し、T.Var は1つの変数を選択します。
  • timetable には追加で行時間があります。ソートし、タイムゾーンと一意性を検証した後、意図的に retime/synchronize を使用します。
  • 欠損センチネルは型固有です:NaN、NaT、<missing>、<undefined>、空の文字ベクトル。整数と論理配列には標準の欠損センチネルはありません。
  • プロダクションデータの推論に頼るのではなく、インポートオプションを定義します。単位、タイムゾーン、変数名、エンコーディング、欠損ルールを保持します。

データインポート/エクスポート を参照してください。

グラフィックスとエクスポート

明示的な figure/axes ハンドルと tiledlayout を使用します。単位をラベル付けし、制限、カラースケール、フォントサイズ、カラーマップを意図的に設定します。出版用の出力には saveas よりも exportgraphics を優先します。R2026aでは、ラスター、PDF/EPS/EMF、SVG、GIF、インタラクティブHTMLをエクスポートします。形式によって機能が異なります。適切なPDF/SVGスタイルの出力には ContentType="vector" を、ラスター出力には Resolution を指定します。アクセシビリティと埋め込みラスタービヘイビアをレビューします。

グラフィックスとエクスポート を参照してください。

MATファイルと交換

  • バージョン7は通常の save のデフォルトです。matfile はデフォルトで7.3を作成します。バージョン4/6/7/7.3は、型、圧縮、変数ごとの制限が異なります。
  • バージョン7.3はHDF5ベースですが、任意のHDF5交換契約ではありません。部分アクセスとチャンク化は大きな配列に役立ちます。
  • 信頼できないMATファイルをロードしないでください。最初にヘッダー/データセットをインベントリします。オブジェクトはクラスのデシリアライゼーションビヘイビアを呼び出す可能性があります。不透明/関数/ネイティブコンテンツにはエスカレーションが必要です。
  • 単純な交換には、ドキュメント化されたスキーマを持つCSV/JSON/Parquet/HDF5を優先します。pickleペイロードをMATファイルとしてリネームしたり、pickleをデシリアライズしたりしないでください。

データインポート/エクスポート を参照してください。

プロジェクト、分析、テスト

  • MATLAB Projectsを使用して、制御されたパス、起動/シャットダウンタスク、依存関係、ソースコントロール、再現可能なエントリポイントを実現します。信頼できないプロジェクトを開く前に、プロジェクトのアクションをレビューします。
  • matlab.codetools.requiredFilesAndProducts と Dependency Analyzer は静的な近似です。動的ディスパッチは見逃しや誤検出を引き起こす可能性があります。必要な製品レポートはライセンスの可用性を証明しません。
  • 移行前に Code Analyzer(codeIssues;レガシーテキストワークフローは checkcode を使用可能)および codeCompatibilityReport を使用します。
  • ベースMATLABには、スクリプト、関数、クラスベースの matlab.unittest ワークフローが含まれます。並列実行には Parallel Computing Toolbox が必要です。依存関係ベースの選択、よりリッチな品質ダッシュボード、生成テスト、高度なカバレッジ/等価性機能には、MATLAB Test または他の製品が必要になる場合があります。
  • R2026aの runtests は、対象テストがまだ開いていないプロジェクトに属している場合、自動的にプロジェクトを開き、後で閉じます。この動作を使用する前に、起動およびシャットダウンアクションを考慮します。

プログラミング および 実行/テスト を参照してください。

Python統合(R2026aに固定)

  • R2026aは、MATLAB Interface to Python、MATLAB Engine for Python、MATLAB Compiler SDK for Python に対して64ビットCPython 3.9-3.13をサポートします。
  • ここでレビューされた現在のR2026a PyPIパッケージは matlabengine==26.1.12(2026-05-08リリース)です。インストール済みのR2026aが必要です。MATLAB Runtimeだけでは不十分です。R2026aは、matlabroot パスの下にプリインストールされたEngineディストリビューションも出荷します。
  • パッケージのインストールはMATLABまたはツールボックスのライセンスを付与しません。名前付きインタプリタ/実行可能ファイルを1つ設定してください。完全な環境、PATH、PYTHONPATH、または認証情報を出力しないでください。
  • pyenv はMATLABからPythonインタプリタの選択を制御します。インプロセスPythonは通常、MATLABの再起動が必要です。アウトオブプロセスPythonは終了して再設定できます。
  • Engineの起動は明示的な実行アクションです:matlab.engine.start_matlab() はMATLABプロセスを開始し、ライセンスをチェックアウトする可能性があります。可用性を確認するためだけに呼び出さないでください。
  • NumPy配列、pandas DataFrame、テーブル/タイムテーブル、文字列/欠損値、datetime/duration、辞書、形状/順序、サポートされていないスパース/オブジェクト/カテゴリカルケースの変換セマンティクスを確認します。

Python統合 を参照してください。

ローカルヘルパーCLI

すべてのヘルパーは、ネットワークフリー、境界あり、シンボリックリンク拒否、非実行です。このスキルディレクトリからPython 3.11+で実行します。BashはこれらのPython CLIと検証コマンドを起動するためにのみ許可されます。生成されたMATLAB/Octave argv計画や信頼できないアーティファクトを実行するために使用しないでください。

ヘルパー目的
scripts/plan_batch_command.pyレビュー済みのMATLAB/Octave argvを生成します。実行はしません。
scripts/scan_m_code.py.m テキストをスキャンし、不透明な .mlx/MEXリスクをフラグします。
scripts/validate_project_manifest.pyパスと宣言された製品/ライセンスステータスを検証します。
scripts/inventory_mat_file.pyヘッダー/メタデータのインベントリ。loadmat は呼び出しません。
scripts/plan_python_compatibility.pyR2026a CPython/Engineの互換性をチェックします。
scripts/reproducibility_report.py名前付きローカルアーティファクトのハッシュを取得し、境界のあるレポートを出力します。
scripts/generate_function_scaffold.py関数と単体テストのスキャフォールドをドライランまたは作成します。
python scripts/scan_m_code.py path/to/source --root path/to/project
python scripts/plan_batch_command.py matlab script path/to/main.m --root path/to/project
python scripts/validate_project_manifest.py project-manifest.json --root path/to/project
python scripts/inventory_mat_file.py data.mat --root path/to/project
python scripts/plan_python_compatibility.py --python-version 3.13
python scripts/reproducibility_report.py --root path/to/project --file src/analyze.m
python scripts/generate_function_scaffold.py analyzeSignal --root path/to/project

スキャフォールドジェネレータはデフォルトでドライランです。書き込みには --write が必要で、衝突を拒否します。SciPy と h5py はオプションのインベントリバックエンドです。許可されている場合、正確にレビューされたバージョンを呼び出し元のプロジェクトロックファイルに追加してください。--help またはヘッダーのみのインベントリにはこれらは不要であり、このスキルはパッケージインストールを実行しません。

参考文献

バンドルされたJSONアセットは、プロジェクトマニフェスト、再現性マニフェスト、R2026a Pythonテーブル です。templates/ ディレクトリはなく、assets/ からMarkdownファイルは読み込まれません。ローカルリンクテストはこのパッケージ契約を強制します。

一次ソース(2026-07-23 確認)

Scientific Agent Skills の引用

このスキルは、K-Dense による Scientific Agent Skills の一部です。原稿、レポート、プレゼンテーション、またはコードリリースに実質的に貢献した場合は、参考文献またはソフトウェアセクションに論文を追加し、その旨をユーザーに伝えてください:

Kassis, T., Agarw

…

[翻訳のために切り捨てられました]

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

adaptyv

How to use the Adaptyv Bio Foundry API and Python SDK for protein experiment design, submission, and results retrieval. Use this skill whenever the user mentions Adaptyv, Foundry API, protein binding assays, protein screening experiments, BLI/SPR assays, thermostability assays, or wants to submit protein sequences for experimental characterization. Also trigger when code imports `adaptyv`, `adaptyv_sdk`, or `FoundryClient`, or references `foundry-api-public.adaptyvbio.com`.

aeon

This skill should be used for time series machine learning tasks including classification, regression, clustering, forecasting, anomaly detection, segmentation, and similarity search. Use when working with temporal data, sequential patterns, or time-indexed observations requiring specialized algorithms beyond standard ML approaches. Particularly suited for univariate and multivariate time series analysis with scikit-learn compatible APIs.

alphagenome

Look up precomputed AlphaGenome Atlas effects for any GRCh38 single-nucleotide variant (AVI score with Phred and 18 SHAP feature attributions, plus raw and quantile scores for RNA-seq, DNase, ATAC, ChIP-TF, ChIP-histone, CAGE, PRO-cap, splicing, polyadenylation and contact-map tracks), score variants or scan windows on demand with the AlphaGenome model for human and mouse (variant scoring, in silico mutagenesis, REF-versus-ALT track prediction), and build Atlas website deep links. Use when the user mentions AlphaGenome, AlphaGenome Atlas, AVI or AlphaGenome Variant Impact, DeepMind variant effect prediction, or wants to prioritise or mechanistically interpret non-coding, regulatory, splicing, enhancer, promoter, or chromatin-accessibility effects of SNVs from a VCF, credible set, or region. Research use only; not a clinical tool.

analytical-method-validation

Plan, execute, and document validation, verification, and transfer of analytical procedures under the governing framework - ICH Q2(R2) and Q14, USP <1220>/<1225>/<1226>, ICH M10 bioanalytical, CLSI EP, or ISO/IEC 17025. Use for HPLC, LC-MS/MS, GC, CE, ICP-MS, dissolution, qNMR, qPCR, NIR, and ligand binding or cell-based assays whenever the question is whether a procedure is fit for its intended purpose. Triggers include

anndata

Data structure for annotated matrices in single-cell analysis. Use when working with .h5ad files or integrating with the scverse ecosystem. This is the data format skill—for analysis workflows use scanpy; for probabilistic models use scvi-tools; for population-scale queries use cellxgene-census.

arbor

Autonomously improve a real artifact (code, training recipe, agent harness, data pipeline, prompt) against an objective and an evaluator, using Hypothesis Tree Refinement (HTR) from the Arbor paper. Use this whenever someone wants to iteratively optimize something over many experiments without overfitting — e.g.

arboreto

Infer gene regulatory networks (GRNs) from gene expression data using scalable algorithms (GRNBoost2, GENIE3). Use when analyzing transcriptomics data (bulk RNA-seq, single-cell RNA-seq) to identify transcription factor-target gene relationships and regulatory interactions. Supports distributed computation for large-scale datasets.

astropy

Core Python library for astronomy and astrophysics workflows that need Astropy APIs, including units/quantities, coordinates, FITS I/O, tables, time systems, WCS, and cosmology. Use when implementing or debugging astronomical data analysis code with Astropy.

autoskill

Observe the user

benchling-integration

Benchling Python SDK and REST API integration for registry entities, inventory, ELN entries, workflows, Benchling Apps, and Data Warehouse queries. Use when automating lab data with benchling-sdk or the v2 API.

bgpt-paper-search

Search scientific papers and retrieve structured experimental data extracted from full-text studies via the BGPT MCP server. Returns 25+ fields per paper including methods, results, sample sizes, quality scores, and conclusions. Use for literature reviews, evidence synthesis, and finding experimental details not available in abstracts alone.

bids

>

biopython

Comprehensive molecular biology toolkit. Use for sequence manipulation, file parsing (FASTA/GenBank/PDB), phylogenetics, and programmatic NCBI/PubMed access (Bio.Entrez). Best for batch processing, custom bioinformatics pipelines, BLAST automation. For quick lookups use gget; for multi-service integration use bioservices.

bioservices

Unified Python interface to 40+ bioinformatics services. Use when querying multiple databases (UniProt, KEGG, ChEMBL, Reactome) in a single workflow with consistent API. Best for cross-database analysis, ID mapping across services. For quick single-database lookups use gget; for sequence/file manipulation use biopython.

bulk-rnaseq

End-to-end bulk RNA-seq orchestrator — takes raw FASTQ reads through QC and trimming (FastQC, fastp/Trim Galore), alignment and quantification (STAR, Salmon, featureCounts), assembles a gene-level counts matrix, then hands off to differential expression (pydeseq2), pathway/GSEA enrichment (pathway-enrichment), and publication figures (scientific-visualization). Use whenever the user has bulk RNA-seq reads or quant output and wants a complete, reproducible differential-expression workflow — e.g.

cellxgene-census

Query the CZ CELLxGENE Census programmatically for versioned public single-cell and spatial transcriptomics data. Use when you need population-scale cell metadata, gene expression slices, Census summary counts, source H5AD URIs/downloads, embeddings, spatial Census data, or reference atlas comparisons across organisms, tissues, diseases, assays, and cell types. For analyzing your own local single-cell data use scanpy, anndata, or scvi-tools.

cirq

Google quantum computing framework. Use when targeting Google Quantum AI hardware, designing noise-aware circuits, or running quantum characterization experiments. Best for Google hardware, noise modeling, and low-level circuit design. For IBM hardware use qiskit; for quantum ML with autodiff use pennylane; for physics simulations use qutip.

citation-management

Comprehensive citation management for academic research. Search OpenAlex, PubMed, and Google Scholar for papers, extract accurate metadata, validate citations, and generate properly formatted BibTeX entries. This skill should be used when you need to find papers, verify citation information, convert DOIs to BibTeX, or ensure reference accuracy in scientific writing.

clinical-decision-support

Prepare and validate research-only clinical decision-support evaluation, evidence-profile, cohort, survival, biomarker/model, privacy, and governance artifacts. Use for aggregate or synthetic research documentation and traceability—not patient care or live clinical operation.

clinical-reports

Create safety-bounded draft structures and run local deterministic checks for clinical case, diagnostic, trial, safety, and aggregate research reports. Use only with synthetic, de-identified, or aggregate inputs and verified source-fact manifests; every output requires qualified review.

関連スキル