【Matlab】常用函数总结

目录

引言

一、基础操作与变量管理

[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)                   % 转换为灰度图
相关推荐
Han.miracle2 小时前
优选算法-004 盛最多水的容器
数据结构·算法
Knight_AL2 小时前
布隆过滤器参数深度解析:如何根据误判率计算位数组大小与哈希函数数量
算法·哈希算法
赵得C3 小时前
软件设计师前沿考点精讲:新兴技术与性能优化实战
java·开发语言·分布式·算法·设计模式·性能优化
小白程序员成长日记3 小时前
2025.12.09 力扣每日一题
数据结构·算法·leetcode
Bear on Toilet3 小时前
18 . 杨辉三角
算法·leetcode·职场和发展
小川_wenxun3 小时前
快速选择算法
算法
酌沧3 小时前
大模型量化技术全解析
人工智能·python·算法
ULTRA??3 小时前
QT向量类实现GJK碰撞检测算法3d版本
c++·qt·算法
仰泳的熊猫3 小时前
1092 To Buy or Not to Buy
数据结构·c++·算法·pat考试