matlab

MATLAB and GNU Octave numerical computing for matrix operations, data analysis, visualization, and scientific computing. Use when writing MATLAB/Octave scripts…

INSTALLATION
npx skills add https://github.com/k-dense-ai/scientific-agent-skills --skill matlab
Run in your project or agent environment. Adjust flags if your CLI version differs.

SKILL.md

$29

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:

% 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](https://github.com/k-dense-ai/scientific-agent-skills/blob/HEAD/scientific-skills/matlab/references/matrices-arrays.md).

### 2. Linear Algebra

% 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](https://github.com/k-dense-ai/scientific-agent-skills/blob/HEAD/scientific-skills/matlab/references/mathematics.md).

### 3. Plotting and Visualization

% 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](https://github.com/k-dense-ai/scientific-agent-skills/blob/HEAD/scientific-skills/matlab/references/graphics-visualization.md).

### 4. Data Import/Export

% 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](https://github.com/k-dense-ai/scientific-agent-skills/blob/HEAD/scientific-skills/matlab/references/data-import-export.md).

### 5. Control Flow and Functions

% 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](https://github.com/k-dense-ai/scientific-agent-skills/blob/HEAD/scientific-skills/matlab/references/programming.md).

### 6. Statistics and Data Analysis

% 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](https://github.com/k-dense-ai/scientific-agent-skills/blob/HEAD/scientific-skills/matlab/references/mathematics.md).

### 7. Differential Equations

% 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](https://github.com/k-dense-ai/scientific-agent-skills/blob/HEAD/scientific-skills/matlab/references/mathematics.md).

### 8. Signal Processing

% 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](https://github.com/k-dense-ai/scientific-agent-skills/blob/HEAD/scientific-skills/matlab/references/mathematics.md).

## Common Patterns

### Pattern 1: Data Analysis Pipeline

% 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

% 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) - 2u(i) + u(i-1));

end

u = u_new;

end

plot(x, u);


### Pattern 3: Batch Processing

% 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](https://github.com/k-dense-ai/scientific-agent-skills/blob/HEAD/scientific-skills/matlab/references/matrices-arrays.md)** - Matrix creation, indexing, manipulation, and operations

- **[mathematics.md](https://github.com/k-dense-ai/scientific-agent-skills/blob/HEAD/scientific-skills/matlab/references/mathematics.md)** - Linear algebra, calculus, ODEs, optimization, statistics

- **[graphics-visualization.md](https://github.com/k-dense-ai/scientific-agent-skills/blob/HEAD/scientific-skills/matlab/references/graphics-visualization.md)** - 2D/3D plotting, customization, export

- **[data-import-export.md](https://github.com/k-dense-ai/scientific-agent-skills/blob/HEAD/scientific-skills/matlab/references/data-import-export.md)** - File I/O, tables, data formats

- **[programming.md](https://github.com/k-dense-ai/scientific-agent-skills/blob/HEAD/scientific-skills/matlab/references/programming.md)** - Functions, scripts, control flow, OOP

- **[python-integration.md](https://github.com/k-dense-ai/scientific-agent-skills/blob/HEAD/scientific-skills/matlab/references/python-integration.md)** - Calling Python from MATLAB and vice versa

- **[octave-compatibility.md](https://github.com/k-dense-ai/scientific-agent-skills/blob/HEAD/scientific-skills/matlab/references/octave-compatibility.md)** - Differences between MATLAB and GNU Octave

- **[executing-scripts.md](https://github.com/k-dense-ai/scientific-agent-skills/blob/HEAD/scientific-skills/matlab/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](https://github.com/k-dense-ai/scientific-agent-skills/blob/HEAD/scientific-skills/matlab/references/octave-compatibility.md).

## Best Practices

-

**Vectorize operations** - Avoid loops when possible:

% Slow

for i = 1:1000

y(i) = sin(x(i));

end

% Fast

y = sin(x);


-

**Preallocate arrays** - Avoid growing arrays in loops:

% Slow

for i = 1:1000

y(i) = i^2;

end

% Fast

y = zeros(1, 1000);

for i = 1:1000

y(i) = i^2;

end


-

**Use appropriate data types** - Tables for mixed data, matrices for numeric:

% Numeric data

M = readmatrix('numbers.csv');

% Mixed data with headers

T = readtable('mixed.csv');


-

**Comment and document** - Use function help:

function y = myfunction(x)

%MYFUNCTION Brief description

% Y = MYFUNCTION(X) detailed description

%

% Example:

% y = myfunction(5);

y = x.^2;

end

BrowserAct

Let your agent run on any real-world website

Bypass CAPTCHA & anti-bot for free. Start local, scale to cloud.

Explore BrowserAct Skills →

Stop writing automation&scrapers

Install the CLI. Run your first Skill in 30 seconds. Scale when you're ready.

Start free
free · no credit card