目录
[1.1 工作空间管理](#1.1 工作空间管理)
[1.2 帮助系统](#1.2 帮助系统)
[2.1 创建矩阵](#2.1 创建矩阵)
[2.2 矩阵索引与操作](#2.2 矩阵索引与操作)
[3.1 基本数学运算](#3.1 基本数学运算)
[3.2 统计函数](#3.2 统计函数)
[4.1 排序和查找](#4.1 排序和查找)
[4.2 插值与拟合](#4.2 插值与拟合)
[5.1 基本二维绘图](#5.1 基本二维绘图)
[5.2 多子图与三维绘图](#5.2 多子图与三维绘图)
[6.1 文本文件操作](#6.1 文本文件操作)
[6.2 高级文件操作](#6.2 高级文件操作)
[7.1 流程控制](#7.1 流程控制)
[7.2 函数编写](#7.2 函数编写)
[7.3 调试技巧](#7.3 调试技巧)
[8.1 向量化编程](#8.1 向量化编程)
[8.2 内存优化](#8.2 内存优化)
[9.1 信号处理](#9.1 信号处理)
[9.2 图像处理](#9.2 图像处理)
引言
MATLAB作为科学计算和工程领域的主流工具,其强大的函数库是提高编程效率的关键。无论你是初学者还是经验丰富的用户,掌握常用函数都能显著提升工作效率。本文将对MATLAB核心函数进行分类总结,并提供实用示例。
一、基础操作与变量管理
1.1 工作空间管理
Matlab
% 查看工作空间变量
whos
who
% 清除变量/命令窗口/图形
clear var1 var2 % 清除指定变量
clear all % 清除所有变量
clc % 清空命令窗口
close all % 关闭所有图形窗口
% 保存和加载数据
save('data.mat', 'x', 'y') % 保存指定变量
load('data.mat') % 加载数据
1.2 帮助系统
Matlab
help function_name % 显示函数帮助
doc function_name % 打开详细文档
lookfor keyword % 搜索相关函数
which function_name % 显示函数路径
二、矩阵与数组操作
2.1 创建矩阵
Matlab
% 基本创建方法
A = [1 2 3; 4 5 6; 7 8 9] % 手动创建
Z = zeros(3, 4) % 3×4零矩阵
O = ones(2, 3) % 2×3全1矩阵
I = eye(5) % 5阶单位矩阵
R = rand(3, 3) % 3×3随机矩阵(0-1)
Rn = randn(100, 1) % 正态分布随机数
L = linspace(0, 10, 50) % 0到10的50个等分点
2.2 矩阵索引与操作
Matlab
A = magic(5);
% 索引方式
element = A(2, 3) % 第2行第3列
row = A(3, :) % 第3行所有元素
col = A(:, 4) % 第4列所有元素
submatrix = A(2:4, 1:3) % 子矩阵
% 常用矩阵函数
size(A) % 矩阵维度
length(v) % 向量长度
numel(A) % 元素总数
reshape(A, 10, 2) % 重塑矩阵
diag(A) % 提取对角线
triu(A) % 上三角矩阵
tril(A) % 下三角矩阵
三、数学运算函数
3.1 基本数学运算
Matlab
% 三角函数
sin(x), cos(x), tan(x)
asin(y), acos(y), atan(y)
% 指数和对数
exp(x) % e的x次方
log(x) % 自然对数
log10(x) % 以10为底对数
sqrt(x) % 平方根
% 舍入函数
round(3.7) % 四舍五入 → 4
floor(3.7) % 向下取整 → 3
ceil(3.2) % 向上取整 → 4
fix(-3.7) % 向零取整 → -3
3.2 统计函数
Matlab
data = randn(100, 3);
mean(data) % 均值
median(data) % 中位数
std(data) % 标准差
var(data) % 方差
max(data) % 最大值
min(data) % 最小值
sum(data) % 求和
prod(data) % 求积
% 沿特定维度
mean(data, 1) % 每列的均值
mean(data, 2) % 每行的均值
四、数据分析与处理
4.1 排序和查找
Matlab
x = [3, 1, 4, 1, 5, 9, 2];
[sorted, idx] = sort(x) % 排序并返回索引
[uniqueVals] = unique(x) % 唯一值
find(x > 3) % 查找满足条件的索引
4.2 插值与拟合
Matlab
% 一维插值
x = 0:0.1:10;
y = sin(x);
xi = 0:0.01:10;
yi = interp1(x, y, xi, 'spline');
% 多项式拟合
p = polyfit(x, y, 3); % 3阶多项式拟合
y_fit = polyval(p, x); % 计算拟合值
五、图形绘制
5.1 基本二维绘图
Matlab
% 单图绘制
x = linspace(0, 2*pi, 100);
y1 = sin(x);
y2 = cos(x);
figure
plot(x, y1, 'r-', 'LineWidth', 2)
hold on
plot(x, y2, 'b--', 'LineWidth', 2)
xlabel('X轴')
ylabel('Y轴')
title('三角函数')
legend('sin(x)', 'cos(x)')
grid on
5.2 多子图与三维绘图
Matlab
% 多子图
figure
subplot(2, 2, 1)
plot(x, y1)
title('子图1')
subplot(2, 2, 2)
scatter(x, y2)
title('散点图')
% 三维绘图
[X, Y] = meshgrid(-2:0.1:2, -2:0.1:2);
Z = X.*exp(-X.^2 - Y.^2);
subplot(2, 2, 3)
surf(X, Y, Z)
title('三维曲面')
六、文件操作
6.1 文本文件操作
Matlab
% 读取文本文件
data = importdata('data.txt');
T = readtable('data.csv');
% 写入文件
dlmwrite('output.txt', A, 'delimiter', '\t');
writetable(T, 'output.csv');
% 读写Excel
data = xlsread('data.xlsx');
xlswrite('output.xlsx', data);
6.2 高级文件操作
Matlab
% 获取文件信息
files = dir('*.m') % 获取.m文件列表
fileInfo = dir('data.mat')
% 路径操作
currentFolder = pwd % 当前目录
addpath('newfolder') % 添加路径
rmpath('oldfolder') % 移除路径
七、编程与调试
7.1 流程控制
Matlab
% 条件语句
if condition
% 执行代码
elseif another_condition
% 执行代码
else
% 执行代码
end
% 循环结构
for i = 1:n
% 循环体
end
while condition
% 循环体
end
% Switch语句
switch variable
case option1
% 代码块1
case option2
% 代码块2
otherwise
% 默认代码块
end
7.2 函数编写
Matlab
function [output1, output2] = myFunction(input1, input2)
% 函数说明
% 详细描述函数功能
%
% 输入参数:
% input1 - 描述
% input2 - 描述
%
% 输出参数:
% output1 - 描述
% output2 - 描述
% 函数体
output1 = input1 + input2;
output2 = input1 * input2;
% 局部函数
function result = helper(x)
result = x^2;
end
end
7.3 调试技巧
Matlab
% 设置断点
dbstop in myFunction at 10 % 在第10行设置断点
dbstop if error % 出错时暂停
% 调试命令
dbstep % 单步执行
dbcont % 继续执行
dbquit % 退出调试模式
% 性能分析
profile on % 开启性能分析
% 运行代码
profile viewer % 查看分析结果
八、实用技巧与最佳实践
8.1 向量化编程
Matlab
% 避免循环,使用向量化操作
% 慢的方式:
result = zeros(1000, 1);
for i = 1:1000
result(i) = sin(i/100);
end
% 快的方式:
x = (1:1000)'/100;
result = sin(x);
8.2 内存优化
Matlab
% 预分配内存
data = zeros(10000, 100); % 预分配
% 稀疏矩阵
sparseMatrix = sparse(1000, 1000);
sparseMatrix(500, 500) = 1;
% 清理不需要的变量
clear largeVariable
九、工具箱函数速查
9.1 信号处理
Matlab
fft(signal) % 快速傅里叶变换
filter(b, a, x) % 数字滤波器
conv(u, v) % 卷积运算
9.2 图像处理
Matlab
imread('image.jpg') % 读取图像
imshow(I) % 显示图像
imresize(I, 0.5) % 调整大小
rgb2gray(I) % 转换为灰度图