【MATLAB】常用的100个matlab函数总结

【MATLAB】常用的100个matlab函数总结本文详细介绍了 MATLAB 中的基本数学函数和数组操作 包括绝对值 平方根 求和 平均值 中位数 最大值 最小值 标准差 傅里叶变换 图像处理 矩阵运算 随机数生成 数值积分和微分方程求解等 旨在帮助读者掌握 MATLAB 的基础使用技巧

大家好,欢迎来到IT知识分享网。

  1. abs – 绝对值。
    y = abs(-5); % 返回 5 
  2. sqrt – 平方根。
    y = sqrt(16); % 返回 4 
  3. sum – 求和。
    y = sum([1, 2, 3, 4]); % 返回 10 
  4. mean – 平均值。
    y = mean([1, 2, 3, 4]); % 返回 2.5 
  5. median – 中位数。
    y = median([1, 3, 2, 4]); % 返回 2.5 
  6. max – 最大值。
    y = max([1, 3, 2, 4]); % 返回 4 
  7. min – 最小值。
    y = min([1, 3, 2, 4]); % 返回 1 
  8. std – 标准差。
    y = std([1, 2, 3, 4]); % 返回 1.290 
  9. var – 方差。
    y = var([1, 2, 3, 4]); % 返回 1.6667 
  10. length – 长度。
    y = length([1, 2, 3, 4]); % 返回 4 
  11. size – 尺寸。
    y = size([1, 2; 3, 4]); % 返回 [2, 2] 
  12. zeros – 生成全0数组。
    y = zeros(2, 3); % 生成2x3的0矩阵 
  13. ones – 生成全1数组。
    y = ones(2, 3); % 生成2x3的1矩阵 
  14. eye – 单位矩阵。
    y = eye(3); % 生成3x3的单位矩阵 
  15. linspace – 线性间隔向量。
    y = linspace(0, 10, 5); % 生成从0到10的5个等间距数值 
  16. logspace – 对数间隔向量。
    y = logspace(1, 3, 3); % 生成10^1到10^3的3个对数间距数值 
  17. meshgrid – 生成网格坐标矩阵。
    [X, Y] = meshgrid(1:3, 1:3); 
  18. plot – 绘图。
    plot(1:10, (1:10).^2); % 绘制y = x^2图形 
  19. subplot – 子图。
    subplot(1, 2, 1); plot(1:10); subplot(1, 2, 2); plot((1:10).^2); 
  20. surf – 3D表面图。
    [X, Y] = meshgrid(-2:0.1:2, -2:0.1:2); Z = X.^2 + Y.^2; surf(X, Y, Z); 
  21. imshow – 显示图像。
    imshow(ones(10, 10)); 
  22. imread – 读取图像文件。
    img = imread('image.jpg'); 
  23. imwrite – 写图像文件。
    imwrite(img, 'new_image.jpg'); 
  24. rand – 生成随机数。
    y = rand(3, 3); % 生成3x3的随机矩阵 
  25. randn – 生成正态分布的随机数。
    y = randn(3, 3); % 生成3x3的正态分布随机矩阵 
  26. find – 查找非零元素。
    [row, col] = find([1, 0; 0, 1]); % 返回非零元素的位置 
  27. sin – 正弦函数。
    y = sin(pi/2); % 返回1 
  28. cos – 余弦函数。
    y = cos(pi); % 返回-1 
  29. tan – 正切函数。
    y = tan(pi/4); % 返回1 
  30. exp – 指数函数。
    y = exp(1); % 返回2.71828 
  31. log – 自然对数。
    y = log(exp(1)); % 返回1 
  32. log10 – 以10为底的对数。
    y = log10(100); % 返回2 
  33. diff – 差分。
    y = diff([1, 2, 4, 7]); % 返回[1, 2, 3] 
  34. gradient – 梯度。
    y = gradient([1, 2, 4, 7]); % 返回梯度向量 
  35. det – 行列式。
    y = det([1, 2; 3, 4]); % 返回-2 
  36. inv – 矩阵求逆。
    Y = inv([1, 2; 3, 4]); % 返回逆矩阵 
  37. eig – 特征值和特征向量。
    [V, D] = eig([1, 2; 3, 4]); % 返回特征值矩阵D和特征向量矩阵V 
  38. svd – 奇异值分解。
    [U, S, V] = svd([1, 2; 3, 4]); % 返回奇异值分解 
  39. fft – 快速傅里叶变换。
    y = fft([1, 2, 3, 4]); % 返回傅里叶变换结果 
  40. ifft – 逆快速傅里叶变换。
    y = ifft([1, 2, 3, 4]); % 返回逆傅里叶变换结果 
  41. filter – 对数据应用数字滤波器。
    b = [1, -1]; % 滤波器系数 a = 1; % 滤波器分母 y = filter(b, a, [1, 2, 3, 4, 5]); % 返回滤波结果 
  42. conv – 信号卷积。
    x = [1, 2, 3]; h = [1, -1]; y = conv(x, h); % 返回卷积结果 
  43. deconv – 信号反卷积。
    [q, r] = deconv([1, 2, 2, 1], [1, 1]); % 返回商和余数 
  44. fftshift – 移动零频率分量到频谱中心。
    Y = fftshift(fft([1, 2, 3, 4])); % 对FFT结果进行频谱重排 
  45. ifftshift – 反向移动频谱中心。
    Y = ifftshift([1, 2, 3, 4]); % 将频谱中心移回原始位置 
  46. reshape – 重新塑形数组。
    Y = reshape([1, 2, 3, 4, 5, 6], 2, 3); % 将向量重塑为2x3矩阵 
  47. flip – 沿指定维度翻转数组。
    Y = flip([1, 2, 3, 4]); % 翻转向量 
  48. rot90 – 数组旋转90度。
    Y = rot90([1, 2; 3, 4]); % 旋转矩阵90度 
  49. circshift – 循环移位数组。
    Y = circshift([1, 2, 3, 4], 2); % 向右循环移位两位 
  50. interp1 – 一维数据插值。
    x = [0, 1, 2]; v = [0, 1, 4]; xq = 0:0.5:2; yq = interp1(x, v, xq); % 插值得到新数据点 
  51. pchip – 分段三次埃尔米特插值。
    x = [0, 1, 2]; v = [0, 1, 4]; xq = 0:0.5:2; yq = pchip(x, v, xq); % 使用PCHIP方法进行插值 
  52. spline – 三次样条插值。
    x = [0, 1, 2]; v = [0, 1, 4]; xq = 0:0.5:2; yq = spline(x, v, xq); % 使用三次样条插值 
  53. polyfit – 多项式拟合。
    x = [1, 2, 3, 4]; y = [1, 4, 9, 16]; p = polyfit(x, y, 2); % 拟合二次多项式 
  54. polyval – 多项式求值。
    p = [1, 0, -1]; % x^2 - 1 y = polyval(p, [1, 2, 3]); % 在1, 2, 3处求值 
  55. roots – 多项式的根。
     p = [1, -3, 2]; % x^2 - 3x + 2 r = roots(p); % 返回多项式的根 
  56. linsolve – 解线性方程组。
    A = [1, 2; 3, 4]; B = [1; 1]; X = linsolve(A, B); % 解Ax = B 
  57. mldivide – 矩阵左除,解线性方程系统 ( Ax = B )。
    A = [1, 2; 3, 4]; B = [1; 1]; X = A \ B; % 解Ax = B 
  58. mrdivide – 矩阵右除,解线性方程系统 ( XB = A )。
    A = [1, 2; 3, 4]; B = [1, 1; 1, 1]; X = B / A; % 解XB = A 
  59. pinv – 伪逆。
    A = [1, 2; 3, 4]; X = pinv(A); % 计算伪逆 
  60. rank – 矩阵的秩。
    A = [1, 2, 3; 4, 5, 6]; r = rank(A); % 返回矩阵的秩 
  61. trace – 矩阵的迹。
    A = [1, 2; 3, 4]; t = trace(A); % 返回矩阵的迹 
  62. null – 矩阵的零空间。
    A = [1, 2; 3, 6]; N = null(A); % 计算零空间 
  63. orth – 矩阵的正交基。
    A = [1, 0; 0, 1; 1, 1]; O = orth(A); % 计算正交基 
  64. svds – 矩阵的奇异值分解。
    A = [1, 2; 3, 4]; [U, S, V] = svds(A, 2); % 进行奇异值分解 
  65. eigs – 矩阵的部分特征值和特征向量。
    A = [1, 2; 3, 4]; [V, D] = eigs(A, 1); % 计算最大的特征值和对应的特征向量 
  66. kron – 克罗内克积。
    A = [1, 2; 3, 4]; B = [0, 5; 6, 7]; C = kron(A, B); % 计算克罗内克积 
  67. blkdiag – 构造块对角矩阵。
    A = [1, 2; 3, 4]; B = [5, 6; 7, 8]; C = blkdiag(A, B); % 构造块对角矩阵 
  68. diag – 提取或创建对角矩阵。
    A = [1, 2, 3; 4, 5, 6; 7, 8, 9]; d = diag(A); % 提取对角线元素 
  69. tril – 提取矩阵的下三角部分。
     A = [1, 2, 3; 4, 5, 6; 7, 8, 9]; L = tril(A); % 提取下三角部分 
  70. triu – 提取矩阵的上三角部分。
    A = [1, 2, 3; 4, 5, 6; 7, 8, 9]; U = triu(A); % 提取上三角部分 
  71. fliplr – 水平翻转矩阵。
    A = [1, 2; 3, 4]; B = fliplr(A); % 返回 [2, 1; 4, 3] 
  72. flipud – 垂直翻转矩阵。
    A = [1, 2; 3, 4]; B = flipud(A); % 返回 [3, 4; 1, 2] 
  73. rot90 – 旋转矩阵90度。
    A = [1, 2; 3, 4]; B = rot90(A); % 旋转90度得到 [2, 4; 1, 3] 
  74. repmat – 重复复制矩阵。
    A = [1, 2]; B = repmat(A, 2, 3); % 复制成2行3列 [1, 2, 1, 2, 1, 2; 1, 2, 1, 2, 1, 2] 
  75. sparse – 创建稀疏矩阵。
    S = sparse([1, 3], [1, 2], [1, 4]); % 创建稀疏矩阵,元素在(1,1)和(3,2),值为1和4 
  76. full – 将稀疏矩阵转换为完整矩阵。
    S = sparse([1, 2], [1, 2], [1, 4]); F = full(S); % 将稀疏矩阵转换为完整矩阵 
  77. speye – 创建稀疏单位矩阵。
    S = speye(4); % 创建4x4的稀疏单位矩阵 
  78. spdiags – 创建具有特定对角线的稀疏矩阵。
    B = spdiags([1:4]', 0, 4, 4); % 在主对角线上创建一个稀疏矩阵 
  79. find – 查找非零元素的索引。
    A = [1, 0, 0; 0, 0, 2]; [row, col, v] = find(A); % 返回非零元素的行、列索引和值 
  80. nnz – 计算矩阵中非零元素的数量。
    A = [1, 0, 0; 0, 0, 2]; count = nnz(A); % 返回2 
  81. issparse – 检查矩阵是否为稀疏矩阵。
    A = sparse(eye(4)); result = issparse(A); % 返回 true 
  82. gallery – 生成各种测试矩阵。
    A = gallery('hilb', 4); % 生成一个4x4希尔伯特矩阵 
  83. magic – 创建魔方矩阵。
    M = magic(3); % 创建一个3x3的魔方矩阵 
  84. hilb – 创建希尔伯特矩阵。
    H = hilb(4); % 创建一个4x4希尔伯特矩阵 
  85. invhilb – 创建希尔伯特矩阵的逆。
    H = invhilb(4); % 创建4x4希尔伯特矩阵的逆 
  86. hadamard – 创建哈达玛矩阵。
    H = hadamard(8); % 创建一个8x8哈达玛矩阵 
  87. toeplitz – 创建托普利茨矩阵。
    T = toeplitz([1, 2, 3]); % 创建一个以[1, 2, 3]为第一列的托普利茨矩阵 
  88. hankel – 创建汉克尔矩阵。
    H = hankel([1, 2, 3, 4]); % 创建一个以[1, 2, 3, 4]为第一列的汉克尔矩阵 
  89. vander – 创建范德蒙德矩阵。
    V = vander([1, 2, 3]); % 创建一个3x3的范德蒙德矩阵 
  90. compan – 创建伴随矩阵。
    C = compan([1, -3, 2]); % 创建一个多项式x^2 - 3x + 2的伴随矩阵 
  91. chol – 生成一个矩阵的乔尔斯基分解。
    A = [4, 1; 1, 3]; R = chol(A); % 返回A的乔尔斯基因子 
  92. qr – 计算QR分解。
    A = [1, 2; 3, 4]; [Q, R] = qr(A); % 返回QR分解 
  93. lu – 计算LU分解。
    A = [1, 2; 3, 4]; [L, U] = lu(A); % 返回LU分解 
  94. besselj – 贝塞尔函数的第一类。
    x = linspace(0, 10, 100); y = besselj(1, x); % 计算一阶贝塞尔函数的第一类 
  95. integral – 数值积分。
    f = @(x) x.^2; result = integral(f, 0, 1); % 计算从0到1的x^2的积分 
  96. ode45 – 解常微分方程。
    f = @(t, y) -y; [t, y] = ode45(f, [0 10], 1); % 用ode45求解dy/dt = -y 
  97. fsolve – 解非线性方程。
    f = @(x) x.^2 - 4*x + 4; x = fsolve(f, 0.5); % 求解方程x^2 - 4x + 4 = 0 
  98. fminbnd – 在指定范围内查找函数的局部最小值。
    f = @(x) (x-3).^2; x = fminbnd(f, 0, 5); % 在0到5范围内找到函数的最小值 
  99. fminsearch – 使用无约束的下降方法查找函数的最小值。
    f = @(x) (x-3).^2 + (x-5).^4; x = fminsearch(f, 0); % 找到函数的最小值 
  100. quad – 使用自适应辛普森法进行数值积分。
     f = @(x) exp(-x.^2); result = quad(f, 0, Inf); % 计算从0到无穷的e^(-x^2)的积分 

其他

对数(log)的使用

  1. 以e为底的对数用log()表示,如: log(a)
  2. 以10为底的对数用log10()表示,如: log10(a)
  3. 以2为底的对数用log2()表示,如: log2(a)
  4. 对于其它如 l o g ⁡ a b log ⁡_ab logab l o g b / l o g a logb/loga logb/loga

四种取整函数

MATLAB中对取整,给出了四种不同取整方法的函数,分别是:

  • fix
  • floor
  • ceil
  • round
  1. fix()
    向靠近0的方向取整,比如:
    fix(2.2)=2
    fix(2.9)=2
    fix(-1.2)=-1
    fix(-2.7)=-2




生成随机数

首先使用 rng 函数设置随机数生成的种子为 1,这样每次运行时都会生成相同的随机数序列。

然后使用 randi 函数生成大小为 1×10 的随机数序列,其中 randi([0 1], 1, 10) 表示生成 0 和 1 的随机数序列。

最后使用 disp 函数显示生成的随机数序列。

  • 生成0,1随机数
% 设置随机数生成的种子 rng(1); % 生成随机数序列 random_seq = randi([0 1], 1, 10); % 显示随机数序列 disp(random_seq); 

abs() 数值的绝对值和复数的幅值

  1. abs(x),如果x是数值,那返回值就是数值x的绝对值
  2. abs(x),如果x是数组,那返回值就是一个数组,而数组中每一个元素都是原数组x中元素的绝对值
  3. abs(x),如果x是复数:a+bj,那返回值就是复数的幅值: a b s ( x ) = s q r t ( a 2 + b 2 ) abs(x)=sqrt(a^2 +b^2) abs(x)=sqrt(a2+b2),其中sqrt是开根号的意思,也就是: a 2 + b 2 \sqrt{a^2+b^2} a2+b2
  4. abs(x),如果x是复数数组,那返回值就是一个数组,而数组中每一个元素都是原数组x中复数元素的幅值

mean()均值

  1. mean(x),如果x是数组,那返回的就是数组的均值
    m e a n ( x ) = x 1 + x 2 + . . . . + x n n mean(x)= \frac{x_1+x_2+….+x_n}{n} mean(x)=nx1+x2+….+xn

mod()取余

M = m o d ( X , Y ) M = mod(X,Y) M=mod(X,Y)
返回 X X X Y Y Y取模运算的结果。这里 X X X可以是一个数组。

共轭转置和转置

A = [1+2i, 2.3+5.3i , 1.3+5.8i; 5+4.6i, 3.2+4.2i, 7.1+2.3i]; B = A'; % 共轭转置 C = A.'; % 转置 

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

fread函数用法

fread函数常见用法:1、A=fread(fileID,sizeA,precision,skip,machinefmt) 2、A=fread(fileID) 3、fread(fileID,sizeA) 4、A=fread(fileID,sizeA,precision) 5、A=fread(fileID,sizeA,precision,skip) 6、A=fread(fileID,sizeA,precision,skip)

直接讲第一种参数最多时候的用法,其他可以类推。

fread函数主要用法读取二进制文件。

下面是常用参数的含义:

1、fileID 文件标识

打开的文件标识。比如fid=fopen(‘file.dat’); fid就是fileID,即文件标识

2、sizeA 输出数组的维度

有3种参数,Inf、n、[m,n]

Inf 代表输出数据是列向量,文件中每一个元素对应一个值

n 代表有n个元素的列向量

[m,n] 代表按列向量排列的m行n列的矩阵,n可以取Inf,但m不可以

3、precision 需要读取数据的类型和大小,默认’uint8=>double’

常见有uint,uint8、uint16等数据格式,需要根据源数据来确定

4、skip 代表跳过多少字节,默认为0

5、machinefmt 待读取数据字节的排列方式,默认为’n’

需要根据源数据格式来确定,有’b’、‘l’、‘s’、’a’等格式

‘n’就是系统字节的排列顺序,即‘native’

‘b’就是’ieee-be’,即’Big-endian ordering’,即低位字节排放在内存的高地址端,高位字节排放在内存的低地址端

‘l’就是‘ieee-le’,即‘Little-endian ordering’即低位字节排放在内存的低地址端,高位字节排放在内存的高地址端

addpath()函数的用法

matlab在执行程序的时候,如果文件不在搜索路径中,就无法找到该文件,因此,就需要将某些文件夹添加为搜索路径,这样程序才能找到,例如:

假设当前.m文件所在路径为D:/code, 需要将该路径下面的data以及data下的全部子文件夹添加进搜索路径。可以用addpath添加到搜索路径中:

  1. addpath参数为绝对路径:
addpath(genpath(‘F:/code/data’)) 
  1. add参数为相对路径:
addpath(genpath(‘data’)) 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/109974.html

(0)
上一篇 2026-02-03 16:26
下一篇 2026-02-03 16:45

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信