matlab
MATLAB and GNU Octave numerical computing for matrix operations, data analysis, visualization, and scientific computing. Use when writing MATLAB/Octave scripts for linear algebra, signal processing, image processing, differential equations, optimization, statistics, or creating scientific visualizations. Also use when the user needs help with MATLAB syntax, functions, or wants to convert between MATLAB and Python code. Scripts can be executed with MATLAB or the open-source GNU Octave interpreter.
What this skill does
# MATLAB/Octave Scientific Computing
MATLAB is a numerical computing environment optimized for matrix operations and scientific computing. GNU Octave is a free, open-source alternative with high MATLAB compatibility.
## Quick Start
**Running MATLAB scripts:**
```bash
# MATLAB (commercial)
matlab -nodisplay -nosplash -r "run('script.m'); exit;"
# GNU Octave (free, open-source)
octave script.m
```
**Install GNU Octave:**
```bash
# macOS
brew install octave
# Ubuntu/Debian
sudo apt install octave
# Windows - download from https://octave.org/download
```
## Core Capabilities
### 1. Matrix Operations
MATLAB operates fundamentally on matrices and arrays:
```matlab
% Create matrices
A = [1 2 3; 4 5 6; 7 8 9]; % 3x3 matrix
v = 1:10; % Row vector 1 to 10
v = linspace(0, 1, 100); % 100 points from 0 to 1
% Special matrices
I = eye(3); % Identity matrix
Z = zeros(3, 4); % 3x4 zero matrix
O = ones(2, 3); % 2x3 ones matrix
R = rand(3, 3); % Random uniform
N = randn(3, 3); % Random normal
% Matrix operations
B = A'; % Transpose
C = A * B; % Matrix multiplication
D = A .* B; % Element-wise multiplication
E = A \ b; % Solve linear system Ax = b
F = inv(A); % Matrix inverse
```
For complete matrix operations, see [references/matrices-arrays.md](references/matrices-arrays.md).
### 2. Linear Algebra
```matlab
% Eigenvalues and eigenvectors
[V, D] = eig(A); % V: eigenvectors, D: diagonal eigenvalues
% Singular value decomposition
[U, S, V] = svd(A);
% Matrix decompositions
[L, U] = lu(A); % LU decomposition
[Q, R] = qr(A); % QR decomposition
R = chol(A); % Cholesky (symmetric positive definite)
% Solve linear systems
x = A \ b; % Preferred method
x = linsolve(A, b); % With options
x = inv(A) * b; % Less efficient
```
For comprehensive linear algebra, see [references/mathematics.md](references/mathematics.md).
### 3. Plotting and Visualization
```matlab
% 2D Plots
x = 0:0.1:2*pi;
y = sin(x);
plot(x, y, 'b-', 'LineWidth', 2);
xlabel('x'); ylabel('sin(x)');
title('Sine Wave');
grid on;
% Multiple plots
hold on;
plot(x, cos(x), 'r--');
legend('sin', 'cos');
hold off;
% 3D Surface
[X, Y] = meshgrid(-2:0.1:2, -2:0.1:2);
Z = X.^2 + Y.^2;
surf(X, Y, Z);
colorbar;
% Save figures
saveas(gcf, 'plot.png');
print('-dpdf', 'plot.pdf');
```
For complete visualization guide, see [references/graphics-visualization.md](references/graphics-visualization.md).
### 4. Data Import/Export
```matlab
% Read tabular data
T = readtable('data.csv');
M = readmatrix('data.csv');
% Write data
writetable(T, 'output.csv');
writematrix(M, 'output.csv');
% MAT files (MATLAB native)
save('data.mat', 'A', 'B', 'C'); % Save variables
load('data.mat'); % Load all
S = load('data.mat', 'A'); % Load specific
% Images
img = imread('image.png');
imwrite(img, 'output.jpg');
```
For complete I/O guide, see [references/data-import-export.md](references/data-import-export.md).
### 5. Control Flow and Functions
```matlab
% Conditionals
if x > 0
disp('positive');
elseif x < 0
disp('negative');
else
disp('zero');
end
% Loops
for i = 1:10
disp(i);
end
while x > 0
x = x - 1;
end
% Functions (in separate .m file or same file)
function y = myfunction(x, n)
y = x.^n;
end
% Anonymous functions
f = @(x) x.^2 + 2*x + 1;
result = f(5); % 36
```
For complete programming guide, see [references/programming.md](references/programming.md).
### 6. Statistics and Data Analysis
```matlab
% Descriptive statistics
m = mean(data);
s = std(data);
v = var(data);
med = median(data);
[minVal, minIdx] = min(data);
[maxVal, maxIdx] = max(data);
% Correlation
R = corrcoef(X, Y);
C = cov(X, Y);
% Linear regression
p = polyfit(x, y, 1); % Linear fit
y_fit = polyval(p, x);
% Moving statistics
y_smooth = movmean(y, 5); % 5-point moving average
```
For statistics reference, see [references/mathematics.md](references/mathematics.md).
### 7. Differential Equations
```matlab
% ODE solving
% dy/dt = -2y, y(0) = 1
f = @(t, y) -2*y;
[t, y] = ode45(f, [0 5], 1);
plot(t, y);
% Higher-order: y'' + 2y' + y = 0
% Convert to system: y1' = y2, y2' = -2*y2 - y1
f = @(t, y) [y(2); -2*y(2) - y(1)];
[t, y] = ode45(f, [0 10], [1; 0]);
```
For ODE solvers guide, see [references/mathematics.md](references/mathematics.md).
### 8. Signal Processing
```matlab
% FFT
Y = fft(signal);
f = (0:length(Y)-1) * fs / length(Y);
plot(f, abs(Y));
% Filtering
b = fir1(50, 0.3); % FIR filter design
y_filtered = filter(b, 1, signal);
% Convolution
y = conv(x, h, 'same');
```
For signal processing, see [references/mathematics.md](references/mathematics.md).
## Common Patterns
### Pattern 1: Data Analysis Pipeline
```matlab
% Load data
data = readtable('experiment.csv');
% Clean data
data = rmmissing(data); % Remove missing values
% Analyze
grouped = groupsummary(data, 'Category', 'mean', 'Value');
% Visualize
figure;
bar(grouped.Category, grouped.mean_Value);
xlabel('Category'); ylabel('Mean Value');
title('Results by Category');
% Save
writetable(grouped, 'results.csv');
saveas(gcf, 'results.png');
```
### Pattern 2: Numerical Simulation
```matlab
% Parameters
L = 1; N = 100; T = 10; dt = 0.01;
x = linspace(0, L, N);
dx = x(2) - x(1);
% Initial condition
u = sin(pi * x);
% Time stepping (heat equation)
for t = 0:dt:T
u_new = u;
for i = 2:N-1
u_new(i) = u(i) + dt/(dx^2) * (u(i+1) - 2*u(i) + u(i-1));
end
u = u_new;
end
plot(x, u);
```
### Pattern 3: Batch Processing
```matlab
% Process multiple files
files = dir('data/*.csv');
results = cell(length(files), 1);
for i = 1:length(files)
data = readtable(fullfile(files(i).folder, files(i).name));
results{i} = analyze(data); % Custom analysis function
end
% Combine results
all_results = vertcat(results{:});
```
## Reference Files
- **[matrices-arrays.md](references/matrices-arrays.md)** - Matrix creation, indexing, manipulation, and operations
- **[mathematics.md](references/mathematics.md)** - Linear algebra, calculus, ODEs, optimization, statistics
- **[graphics-visualization.md](references/graphics-visualization.md)** - 2D/3D plotting, customization, export
- **[data-import-export.md](references/data-import-export.md)** - File I/O, tables, data formats
- **[programming.md](references/programming.md)** - Functions, scripts, control flow, OOP
- **[python-integration.md](references/python-integration.md)** - Calling Python from MATLAB and vice versa
- **[octave-compatibility.md](references/octave-compatibility.md)** - Differences between MATLAB and GNU Octave
- **[executing-scripts.md](references/executing-scripts.md)** - Executing generated scripts and for testing
## GNU Octave Compatibility
GNU Octave is highly compatible with MATLAB. Most scripts work without modification. Key differences:
- Use `#` or `%` for comments (MATLAB only `%`)
- Octave allows `++`, `--`, `+=` operators
- Some toolbox functions unavailable in Octave
- Use `pkg load` for Octave packages
For complete compatibility guide, see [references/octave-compatibility.md](references/octave-compatibility.md).
## Best Practices
1. **Vectorize operations** - Avoid loops when possible:
```matlab
% Slow
for i = 1:1000
y(i) = sin(x(i));
end
% Fast
y = sin(x);
```
2. **Preallocate arrays** - Avoid growing arrays in loops:
```matlab
% Slow
for i = 1:1000
y(i) = i^2;
end
% Fast
y = zeros(1, 1000);
for i = 1:1000
y(i) = i^2;
end
```
3. **Use appropriate data types** - Tables for mixed data, matrices for numeric:
```matlab
% Numeric data
M = readmatrix('numbers.csv');
% Mixed data with headers
T = readtable('mixed.csv');
```
4. **Comment and document** - Use function help:
```matlab
function y = myfunction(x)
%MYFUNCTION Brief description
% Y = MYFUNCTION(X) detailed desRelated in Image & Video
watch
IncludedWatch a video (URL or local path). Downloads with yt-dlp, extracts auto-scaled frames with ffmpeg, pulls the transcript from captions (or Whisper API fallback), and hands the result to Claude so it can answer questions about what's in the video.
physical-ai-defect-image-generation
IncludedUse when the user wants to orchestrate defect image generation, run associated setup, or handle outputs on OSMO. The Day 0 path handles cold-start with USD-to-ROI, image-edit augmentation, and AnomalyGen to create initial PCBA datasets. The Day 1 path performs inference and labeling on real images. This skill helps with first-time asset setup, creation of finetuning checkpoints, and configuring deployment. Trigger keywords: defect image generation, dig workflow, dig pipeline, defect image detection workflow, aoi pipeline, aoi anomalygen, usd2roi anomalygen, day 0 pcba, day 1 pcba, day 1 real-photo alignment, day 1 manual roi, metal surface anomaly, glass defect, anomalygen finetune, setup_pcb, setup_metal, setup_glass, setup_pretrained, dig setup, dig datasets, dig pretrained checkpoint, dig image-edit endpoint.
accelint-react-best-practices
IncludedReact performance optimization and best practices. ALWAYS use this skill when working with any React code - writing components, hooks, JSX; refactoring; optimizing re-renders, memoization, state management; reviewing for performance; fixing hydration mismatches; debugging infinite re-renders, stale closures, input focus loss, animations restarting; preventing remounting; implementing transitions, lazy initialization, effect dependencies. Even simple React tasks benefit from these patterns. Covers React 19+ (useEffectEvent, Activity, ref props). Triggers - useEffect, useState, useMemo, useCallback, memo, inline components, nested components, components inside components, re-render, performance, hydration, SSR, Next.js, useDeferredValue, combined hooks.
elevenlabs-agents
IncludedBuild conversational AI voice agents with ElevenLabs Platform using React, JavaScript, React Native, or Swift SDKs. Configure agents, tools (client/server/MCP), RAG knowledge bases, multi-voice, and Scribe real-time STT. Use when: building voice chat interfaces, implementing AI phone agents with Twilio, configuring agent workflows or tools, adding RAG knowledge bases, testing with CLI "agents as code", or troubleshooting deprecated @11labs packages, Android audio cutoff, CSP violations, dynamic variables, or WebRTC config. Keywords: ElevenLabs Agents, ElevenLabs voice agents, AI voice agents, conversational AI, @elevenlabs/react, @elevenlabs/client, @elevenlabs/react-native, @elevenlabs/elevenlabs-js, @elevenlabs/agents-cli, elevenlabs SDK, voice AI, TTS, text-to-speech, ASR, speech recognition, turn-taking model, WebRTC voice, WebSocket voice, ElevenLabs conversation, agent system prompt, agent tools, agent knowledge base, RAG voice agents, multi-voice agents, pronunciation dictionary, voice speed control, elevenlabs scribe, @11labs deprecated, Android audio cutoff, CSP violation elevenlabs, dynamic variables elevenlabs, case-sensitive tool names, webhook authentication
humanizer
IncludedHumanize AI-generated text by detecting and removing patterns typical of LLM output. Rewrites text to sound natural, specific, and human. Uses 28 pattern detectors, 560+ AI vocabulary terms across 3 tiers, and statistical analysis (burstiness, type-token ratio, readability) for comprehensive detection. Use when asked to humanize text, de-AI writing, make content sound more natural/human, review writing for AI patterns, score text for AI detection, or improve AI-generated drafts. Covers content, language, style, communication, and filler categories.
generating-mermaid-diagrams
IncludedSalesforce architecture diagrams using Mermaid with ASCII fallback. Use this skill when generating text-based diagrams for Salesforce architecture, OAuth flows, ERDs, integration sequences, or Agentforce structure. TRIGGER when: user says "diagram", "visualize", "ERD", or asks for sequence diagrams, flowcharts, class diagrams, or architecture visualizations in Mermaid. DO NOT TRIGGER when: user wants PNG/SVG image output (use generating-visual-diagrams), or asks about non-Salesforce systems.