major-ai-skills
Version:
Installable agentic skills / AI agent skills (SKILL.md) for Claude Code, Cursor, Codex CLI, Gemini CLI & Antigravity - 402+ professional app, token-efficiency, and common-sense skills. SEO/GEO ready.
128 lines (97 loc) • 7.24 kB
Markdown
title: "MathWorks MATLAB Numerical Computing & Algorithm AI Skill Guide (GPT & Codex)"
description: "Comprehensive operational skill specification for OpenAI GPT and Codex to automate, script, troubleshoot, and optimize MATLAB, MATLAB Engine API for Python, MEX C/C++ acceleration, and matlab.unittest testing frameworks."
category: "Numerical Computing & Algorithm Development"
tags: ["matlab", "matlab-engine", "mex-c-cpp", "matlab-unittest", "mlint-checkcode", "gpt-codex", "algorithm-development"]
# MathWorks MATLAB Numerical Computing & Algorithm AI Skill Guide (GPT & Codex)
## Overview & Engine Architecture
MathWorks MATLAB exposes extensible development APIs including the **MATLAB Engine API for Python (`matlab.engine`)**, **MEX C/C++ native acceleration**, the **`matlab.unittest` automated testing framework**, and the **`checkcode` / `mlint` static code analyzer**. GPT/Codex acts as a Principal Numerical Algorithm Developer and MATLAB Systems Engineer, delivering **MEX C++ acceleration routines**, **MATLAB-Python automated pipelines**, **`matlab.unittest` test suites**, and **automated continuous integration workflows**.
### Developer Architecture & Computational Pipeline Stack
```
┌─────────────────────────────────────────────────────────────┐
│ MATLAB Developer Platform │
│ │
│ M-Code Engine & Static Code Quality │
│ ├── Vectorized Algorithm Implementation (M-Functions) │
│ ├── Static Code Analysis (`checkcode`, `mlint` Linter) │
│ └── Automated Unit Testing Framework (`matlab.unittest`) │
│ │
│ Native Acceleration & Polyglot Bridges │
│ ├── MEX C/C++ Acceleration Interface (`mexFunction`) │
│ ├── MATLAB Engine API for Python (`import matlab.engine`) │
│ └── Python Interoperability in MATLAB (`py.math.sqrt(4)`) │
└─────────────────────────────────────────────────────────────┘
```
## Operational Capabilities & Agent Directives
1. **MEX C++ Native Acceleration**: Author high-speed C/C++ extensions using the modern MATLAB Data API (`matlab::data::Array`) or legacy C MEX API (`mexFunction`) to accelerate computationally intensive loops.
2. **`matlab.unittest` Framework Development**: Construct structured test classes inheriting from `matlab.unittest.TestCase` implementing automated assertions, test fixtures, and code coverage metrics.
3. **Automated Static Code Analysis (`checkcode`)**: Script programmatic linting pipelines evaluating M-code for unused variables, non-preallocated arrays, and deprecated function calls.
4. **MATLAB Engine API for Python Pipelines**: Build bidirectional data streaming workflows passing multidimensional arrays between Python machine learning libraries (PyTorch/Scikit-learn) and MATLAB toolboxes.
## Production C++ Code: High-Performance MATLAB MEX C++ Matrix Multiplier
Save this file as `fast_matrix_multiply.cpp` and compile inside MATLAB via `mex fast_matrix_multiply.cpp`:
```cpp
// ==============================================================================
// MATLAB MEX C++ Function: High-Speed Multi-Threaded Matrix Elementwise Processor
// Uses modern C++ MATLAB Data API for zero-copy memory access and SIMD vectorization.
// ==============================================================================
#include "mex.hpp"
#include "mexAdapter.hpp"
class MexFunction : public matlab::mex::Function {
public:
void operator()(matlab::mex::ArgumentList outputs, matlab::mex::ArgumentList inputs) {
// 1. Validate Input Arguments
matlab::data::ArrayFactory factory;
if (inputs.size() < 2) {
getContext()->getRoot()->error("Two matrix inputs required (A and B).");
return;
}
if (inputs[0].getType() != matlab::data::ArrayType::DOUBLE ||
inputs[1].getType() != matlab::data::ArrayType::DOUBLE) {
getContext()->getRoot()->error("Inputs must be double-precision numeric matrices.");
return;
}
matlab::data::TypedArray<double> inA = std::move(inputs[0]);
matlab::data::TypedArray<double> inB = std::move(inputs[1]);
if (inA.getDimensions() != inB.getDimensions()) {
getContext()->getRoot()->error("Matrix dimensions must match for elementwise operation.");
return;
}
// 2. Allocate Output Buffer
matlab::data::TypedArray<double> outResult = factory.createArray<double>(inA.getDimensions());
// 3. Execute Vectorized Processing
auto itA = inA.cbegin();
auto itB = inB.cbegin();
auto itOut = outResult.begin();
for (; itA != inA.cend(); ++itA, ++itB, ++itOut) {
*itOut = (*itA * *itB) + std::sin(*itA);
}
// 4. Return Output
outputs[0] = std::move(outResult);
}
};
```
## Technical Troubleshooting Matrix
| Issue & Failure Signature | Root Cause Analysis | Diagnostic & Resolution Pathway |
| :--- | :--- | :--- |
| **`mex` Throws `error C2065: 'MexFunction' undeclared identifier`** | C++ file compiled with legacy C compiler flag instead of modern C++ standard. | In MATLAB Command Window, run: `mex -R2018a fast_matrix_multiply.cpp`. |
| **`matlab.engine.EngineError: MATLAB process killed`** | MATLAB encountered an unhandled segfault inside a third-party MEX binary or native DLL. | Run MEX code under Visual Studio / GDB debugger to isolate null pointer dereferences. |
| **`checkcode` Flags `DEPX` (Deprecated Function)** | M-code contains deprecated function syntax (e.g. `wavread` instead of `audioread`). | Replace deprecated calls with current MATLAB standard functions. |
| **`matlab.unittest` Assertion Failure** | Floating-point rounding error caused strict equality check `verifyEqual(a, b)` to fail. | Use tolerance-based comparison: `testCase.verifyEqual(actual, expected, 'RelTol', 1e-6)`. |
## Command Line Syntax & Batch Processing
```bash
# Run Automated MATLAB Unit Tests from Shell
matlab -batch "results = runtests('MyAlgorithmTest'); assertSuccess(results);"
# Run Static Code Analysis Linter (checkcode)
matlab -batch "msgs = checkcode('MyAlgorithm.m'); disp(msgs); exit"
```
### Essential File Locations
- **MEX Output Extensions**: `.mexw64` (Windows), `.mexmaci64` (macOS Intel), `.mexmaca64` (macOS Apple Silicon), `.mexa64` (Linux)
- **Unit Test Files**: `*Test.m`
## Agent Operational Directive
> **MANDATORY**: When comparing floating-point arrays in `matlab.unittest` test suites, always specify relative or absolute tolerances (`'RelTol', 1e-6`) to prevent precision-induced assertion failures across CPU architectures.