MATLAB常用的100个函数,建议收藏!!!

下面是 MATLAB 中几个常用的基本函数总结,每个函数附带示例代码和解释。


1. length - 获取数组的长度

length 返回数组的最长维度的大小,即如果是向量,返回其元素个数;如果是矩阵,返回行数和列数中的较大值。

A = [1, 2, 3, 4, 5];
len = length(A);  % 结果为 5

B = [1, 2; 3, 4; 5, 6];
len = length(B);  % 结果为 3,返回行数和列数中的较大值

2. size - 获取矩阵的维度

size 返回矩阵的行数和列数,可以用来获取矩阵的大小。

B = [1, 2; 3, 4; 5, 6];
dims = size(B);       % 结果为 [3, 2]
rows = size(B, 1);    % 获取行数,结果为 3
cols = size(B, 2);    % 获取列数,结果为 2

3. numel - 获取数组的元素总数

numel 返回数组中所有元素的总个数。

A = [1, 2, 3, 4, 5];
count = numel(A);  % 结果为 5

B = [1, 2; 3, 4; 5, 6];
count = numel(B);  % 结果为 6

4. sum - 计算数组元素的总和

sum 用于计算数组或矩阵沿指定维度的和。对向量计算元素总和,对矩阵计算每列的和。

A = [1, 2, 3, 4];
total = sum(A);  % 结果为 10

B = [1, 2; 3, 4; 5, 6];
col_sum = sum(B);       % 结果为 [9, 12],按列求和
row_sum = sum(B, 2);    % 结果为 [3; 7; 11],按行求和

5. mean - 计算数组元素的平均值

mean 用于计算数组或矩阵的平均值。对向量计算元素的平均值,对矩阵计算每列的平均值。

A = [1, 2, 3, 4];
avg = mean(A);  % 结果为 2.5

B = [1, 2; 3, 4; 5, 6];
col_mean = mean(B);      % 结果为 [3, 4],按列计算平均值
row_mean = mean(B, 2);   % 结果为 [1.5; 3.5; 5.5],按行计算平均值

6. maxmin - 找到数组元素的最大值或最小值

max 返回数组或矩阵中的最大值,min 返回最小值。对于矩阵,可以选择在行或列上求最大或最小值。

A = [1, 5, 3, 4];
max_val = max(A);  % 结果为 5
min_val = min(A);  % 结果为 1

B = [1, 2; 3, 4; 5, 6];
col_max = max(B);        % 结果为 [5, 6],按列计算最大值
row_min = min(B, [], 2); % 结果为 [1; 3; 5],按行计算最小值

7. find - 查找满足条件的元素索引

find 返回数组中满足条件的元素的索引位置。

A = [1, 3, 5, 7, 9];
idx = find(A > 5);  % 结果为 [4, 5],表示第4和第5个元素大于5

B = [1, 2; 3, 4; 5, 6];
idx = find(B > 3);  % 结果为 [4, 5, 6],表示第4、5、6个元素大于3

8. sort - 对数组排序

sort 用于对数组或矩阵的元素进行升序或降序排序。

A = [4, 2, 8, 1];
sorted_A = sort(A);       % 结果为 [1, 2, 4, 8],升序排序
sorted_A_desc = sort(A, 'descend');  % 结果为 [8, 4, 2, 1],降序排序

B = [3, 1; 4, 2];
sorted_B = sort(B);       % 按列排序,每列升序

9. unique - 找到数组中的唯一值

unique 返回数组中的唯一元素,并按升序排列。

A = [1, 2, 2, 3, 3, 3, 4];
unique_A = unique(A);  % 结果为 [1, 2, 3, 4]

10. plot - 绘制二维图形

plot 是 MATLAB 中用于绘制二维图形的基本函数。

x = 0:0.1:2*pi;
y = sin(x);
plot(x, y);   % 绘制正弦曲线
title('Sine Wave');
xlabel('x');
ylabel('sin(x)');


11. reshape - 改变数组形状

reshape 用于改变数组的形状而不改变数据的顺序。

A = [1, 2, 3, 4, 5, 6];
B = reshape(A, 2, 3);  % 将 A 重新形状为 2 行 3 列矩阵
% 结果为
% B =
%     1     3     5
%     2     4     6

12. linspace - 生成等间距数值向量

linspace 在指定的范围内生成等间距的数值。

x = linspace(0, 10, 5);  % 在 0 到 10 之间生成 5 个等间距的点
% 结果为 x = [0, 2.5, 5, 7.5, 10]

13. diag - 提取或创建对角矩阵

diag 可以用来提取矩阵的对角线元素,或创建一个对角矩阵。

A = [1, 2, 3; 4, 5, 6; 7, 8, 9];
d = diag(A);  % 提取对角线元素,结果为 [1, 5, 9]

D = diag([10, 20, 30]);  % 创建一个对角矩阵,主对角线元素为 [10, 20, 30]
% 结果为
% D =
%    10     0     0
%     0    20     0
%     0     0    30

14. zerosones - 创建全零或全一矩阵

zerosones 用于创建指定大小的全零或全一矩阵。

Z = zeros(3, 3);  % 创建 3x3 的全零矩阵
% 结果为
% Z =
%     0     0     0
%     0     0     0
%     0     0     0

O = ones(2, 4);  % 创建 2x4 的全一矩阵
% 结果为
% O =
%     1     1     1     1
%     1     1     1     1

15. eye - 创建单位矩阵

eye 用于创建单位矩阵,即主对角线为 1,其余元素为 0。

I = eye(3);  % 创建 3x3 的单位矩阵
% 结果为
% I =
%     1     0     0
%     0     1     0
%     0     0     1

16. inv - 求矩阵的逆矩阵

inv 用于求矩阵的逆矩阵,但前提是矩阵是方阵且可逆。

A = [1, 2; 3, 4];
A_inv = inv(A);  % 求 A 的逆矩阵
% 结果为
% A_inv =
%    -2.0000    1.0000
%     1.5000   -0.5000

17. transpose.' - 矩阵转置

transpose.' 用于矩阵转置,将矩阵的行列互换。

A = [1, 2, 3; 4, 5, 6];
A_T = transpose(A);  % 或使用 A.'
% 结果为
% A_T =
%     1     4
%     2     5
%     3     6

18. randrandn - 随机数生成

  • rand 生成均匀分布的随机数。
  • randn 生成标准正态分布的随机数。
R = rand(2, 3);  % 生成 2x3 的均匀分布随机数矩阵

N = randn(3, 2); % 生成 3x2 的标准正态分布随机数矩阵

19. abs - 求绝对值

abs 用于计算每个元素的绝对值,适用于标量、向量或矩阵。

A = [-1, 2, -3, 4];
B = abs(A);  % 结果为 [1, 2, 3, 4]

20. round, floor, ceil - 取整函数

  • round 将每个元素四舍五入到最近的整数。
  • floor 将每个元素向下取整到最近的整数。
  • ceil 将每个元素向上取整到最近的整数。
A = [1.2, 3.5, -2.8];
B = round(A);  % 结果为 [1, 4, -3]
C = floor(A);  % 结果为 [1, 3, -3]
D = ceil(A);   % 结果为 [2, 4, -2]

21. diff - 计算差分

diff 用于计算数组或矩阵中相邻元素的差。

A = [1, 2, 4, 7, 11];
B = diff(A);  % 结果为 [1, 2, 3, 4]

22. cumsumcumprod - 累积求和和累积乘积

  • cumsum 计算累积和。
  • cumprod 计算累积乘积。
A = [1, 2, 3, 4];
sum_A = cumsum(A);  % 结果为 [1, 3, 6, 10]
prod_A = cumprod(A); % 结果为 [1, 2, 6, 24]

23. subplot - 创建多子图

subplot 用于在同一个窗口中绘制多个子图。

x = 0:0.1:2*pi;
y1 = sin(x);
y2 = cos(x);

subplot(2, 1, 1);  % 创建 2 行 1 列的子图,当前图为第 1 个
plot(x, y1);
title('Sine Wave');

subplot(2, 1, 2);  % 当前图为第 2 个
plot(x, y2);
title('Cosine Wave');

24. legend - 添加图例

legend 用于为图形添加图例,以便区分不同的数据。

x = 0:0.1:2*pi;
y1 = sin(x);
y2 = cos(x);

plot(x, y1, '-r', x, y2, '-b');  % 绘制正弦和余弦曲线
legend('Sine', 'Cosine');        % 添加图例

25. hold onhold off - 保持或释放当前图形

  • hold on 保持当前图形窗口,可以在同一个图上绘制多个数据集。
  • hold off 释放图形窗口,绘制新的图形会覆盖当前图形。
x = 0:0.1:2*pi;
y1 = sin(x);
y2 = cos(x);

plot(x, y1, '-r');  % 绘制正弦曲线
hold on;
plot(x, y2, '-b');  % 在同一图形上绘制余弦曲线
hold off;


26. saveload - 文件保存和加载

  • save 用于将变量保存到文件中,通常保存为 .mat 文件。
  • load 用于从文件中加载变量。
A = [1, 2, 3; 4, 5, 6];
save('myData.mat', 'A');  % 保存变量 A 到 myData.mat 文件中

clear A;                  % 清除变量 A

load('myData.mat');       % 从文件中加载变量 A
disp(A);                  % 显示加载的 A

27. fprintfsprintf - 格式化输出

  • fprintf 用于将格式化数据输出到命令行或文件。
  • sprintf 将格式化数据转换为字符串。
x = 3.14159;
fprintf('The value of x is %.2f\n', x);  % 输出为 "The value of x is 3.14"

str = sprintf('The value of x is %.2f', x);  % 将结果存为字符串
disp(str);                                   % 输出字符串

28. cellcellfun - 创建和操作单元格数组

  • cell 用于创建单元格数组,可以存储不同类型的数据。
  • cellfun 用于对单元格数组的每个元素应用函数。
C = cell(2, 2);         % 创建一个 2x2 的空单元格数组
C{1, 1} = 'Hello';      % 在单元格数组中存储字符串
C{1, 2} = [1, 2, 3];    % 在单元格数组中存储数组

% 使用 cellfun 计算每个单元格的大小
sizes = cellfun(@numel, C);
disp(sizes);            % 显示每个单元格的元素数量

29. structfieldnames - 结构体操作

  • struct 用于创建结构体,可以包含多个字段。
  • fieldnames 返回结构体的字段名称。
person = struct('Name', 'John', 'Age', 30, 'City', 'New York');  % 创建结构体

fields = fieldnames(person);  % 获取结构体的字段名称
disp(fields);                 % 输出字段名称列表

30. isnanisinf - 检查 NaN 和 Inf 值

  • isnan 检查数组中是否有 NaN(非数字)值。
  • isinf 检查数组中是否有 Inf(无穷大)值。
A = [1, NaN, 3, Inf];
nan_elements = isnan(A);  % 结果为 [false, true, false, false]
inf_elements = isinf(A);  % 结果为 [false, false, false, true]

31. interp1 - 一维插值

interp1 用于对一维数据进行插值,可用于在已知数据点之间进行估计。

x = [1, 2, 3, 4];
y = [10, 20, 30, 40];
xq = 2.5;                      % 查询点
yq = interp1(x, y, xq);        % 在 x = 2.5 处插值
disp(yq);                      % 结果为 25

32. diff - 计算数组的差分

diff 计算数组中相邻元素的差,常用于数值微分。

A = [1, 2, 4, 7, 11];
B = diff(A);  % 结果为 [1, 2, 3, 4],计算相邻元素的差

33. polyfitpolyval - 数据拟合和评估

  • polyfit 用于多项式拟合。
  • polyval 用于计算多项式的值。
x = [1, 2, 3, 4];
y = [6, 5, 7, 10];
p = polyfit(x, y, 2);         % 拟合二次多项式
y_fit = polyval(p, x);        % 使用拟合结果计算 y 值
disp(y_fit);

34. meshgrid - 创建网格矩阵

meshgrid 用于创建二维和三维图形的网格坐标。

[x, y] = meshgrid(-5:1:5, -5:1:5);
z = x.^2 + y.^2;
surf(x, y, z);  % 绘制三维曲面图

35. unique - 找到数组中的唯一值

unique 返回数组中的唯一元素,并按升序排列。

A = [1, 2, 2, 3, 3, 3, 4];
unique_A = unique(A);  % 结果为 [1, 2, 3, 4]

36. histhistogram - 绘制直方图

  • hist 用于绘制旧版的直方图。
  • histogram 是较新版本的绘制直方图的函数。
data = randn(1000, 1);
histogram(data, 20);  % 将数据分为 20 个区间绘制直方图

37. quiver - 绘制向量场

quiver 用于绘制二维向量场图,通常用于显示矢量方向和大小。

[x, y] = meshgrid(-2:0.5:2, -2:0.5:2);
u = -y;  % x 方向速度
v = x;   % y 方向速度
quiver(x, y, u, v);  % 绘制向量场

38. fplot - 绘制函数图形

fplot 用于绘制一个函数的图形,不需要提前计算函数值。

f = @(x) sin(x) ./ x;
fplot(f, [-10, 10]);  % 绘制 f(x) = sin(x) / x 的图形

39. trapz - 数值积分

trapz 使用梯形法对离散数据进行数值积分。

x = 0:0.1:10;
y = sin(x);
area = trapz(x, y);  % 使用梯形法计算积分
disp(area);

40. integral - 符号函数的数值积分

integral 用于对一个符号函数进行数值积分。

f = @(x) x.^2;
result = integral(f, 0, 1);  % 对 f(x) = x^2 从 0 到 1 进行积分
disp(result);                % 结果为 1/3 = 0.3333

41. fft - 快速傅里叶变换

fft 用于计算信号的频域表示。

t = 0:0.001:1;
x = sin(2*pi*50*t) + sin(2*pi*120*t);  % 复合信号
y = fft(x);                            % 快速傅里叶变换
plot(abs(y));                          % 绘制幅值谱

42. ifft - 逆快速傅里叶变换

ifft 用于将频域信号转换回时域。

y_inv = ifft(y);                       % 逆快速傅里叶变换
plot(real(y_inv));                     % 绘制原始信号

43. imageimshow - 显示图像

  • image 用于显示数据矩阵作为图像。
  • imshow 用于显示图像文件或矩阵数据。
A = magic(5);
image(A);                 % 显示数据矩阵 A 为图像

I = imread('peppers.png');  % 读取图像文件
imshow(I);                   % 显示图像

44. imreadimwrite - 图像读写

  • imread 用于读取图像文件。
  • imwrite 用于将图像数据写入文件。
I = imread('peppers.png');          % 读取图像文件
grayI = rgb2gray(I);                 % 转为灰度图像
imshow(grayI);                       % 显示灰度图像

% 将灰度图像写入文件
imwrite(grayI, 'gray_peppers.png');  % 保存灰度图像为 gray_peppers.png



45. rgb2gray - 转换为灰度图像

rgb2gray 用于将彩色图像转换为灰度图像。

I = imread('peppers.png');   % 读取彩色图像
grayI = rgb2gray(I);         % 转换为灰度图像
imshow(grayI);               % 显示灰度图像

46. imresize - 调整图像大小

imresize 用于调整图像的大小。

I = imread('peppers.png');
smallI = imresize(I, 0.5);   % 将图像缩小为原来的一半
imshow(smallI);              % 显示缩放后的图像

47. imrotate - 旋转图像

imrotate 用于将图像旋转指定的角度。

I = imread('peppers.png');
rotatedI = imrotate(I, 45);  % 将图像旋转 45 度
imshow(rotatedI);            % 显示旋转后的图像

48. convconv2 - 一维和二维卷积

  • conv 用于一维卷积,通常用于信号处理。
  • conv2 用于二维卷积,通常用于图像处理。
% 一维卷积
a = [1, 2, 3];
b = [4, 5];
c = conv(a, b);  % 结果为 [4, 13, 22, 15]

% 二维卷积
A = [1, 2; 3, 4];
B = [0, 1; 1, 0];
C = conv2(A, B); % 结果为 3x3 的卷积结果矩阵

49. eig - 求矩阵的特征值和特征向量

eig 用于计算方阵的特征值和特征向量。

A = [1, 2; 2, 1];
[V, D] = eig(A);  % D 是特征值对角矩阵,V 是特征向量矩阵

50. svd - 奇异值分解

svd 用于对矩阵进行奇异值分解,广泛用于数据压缩、降维和图像处理等领域。

A = [1, 2; 3, 4; 5, 6];
[U, S, V] = svd(A);  % U 和 V 是正交矩阵,S 是奇异值对角矩阵

51. pinv - 伪逆矩阵

pinv 用于计算矩阵的伪逆,通常用于线性方程组的最小二乘解。

A = [1, 2; 3, 4];
A_pinv = pinv(A);  % 计算 A 的伪逆

52. det - 计算矩阵的行列式

det 用于计算方阵的行列式。

A = [1, 2; 3, 4];
det_A = det(A);  % 结果为行列式值 -2

53. rank - 计算矩阵的秩

rank 用于计算矩阵的秩,通常用于判断矩阵是否满秩。

A = [1, 2; 3, 4];
rank_A = rank(A);  % 结果为 2,表示矩阵 A 是满秩的

54. corrcoef - 计算相关系数矩阵

corrcoef 用于计算两个变量的相关系数,判断它们之间的相关性。

x = [1, 2, 3, 4, 5];
y = [2, 4, 6, 8, 10];
R = corrcoef(x, y);  % 计算 x 和 y 之间的相关系数

55. bsxfun - 按元素应用函数

bsxfun 按元素对数组应用指定的函数,通常用于不同大小数组的按元素运算。

A = [1; 2; 3];
B = [4, 5, 6];
C = bsxfun(@plus, A, B);  % 对 A 和 B 进行按元素加法
% 结果为:
% C =
%     5     6     7
%     6     7     8
%     7     8     9

56. ode45 - 数值求解常微分方程

ode45 是 MATLAB 中用于求解常微分方程的函数。

% 定义微分方程 dy/dt = -2y
dydt = @(t, y) -2 * y;

% 使用 ode45 求解从 t = 0 到 t = 5,初始条件 y(0) = 1
[t, y] = ode45(dydt, [0, 5], 1);
plot(t, y);  % 绘制解的曲线

57. norm - 计算向量或矩阵的范数

norm 用于计算向量或矩阵的范数,默认是 2 范数。

A = [3, 4];
norm_A = norm(A);  % 结果为 5,计算 2 范数 sqrt(3^2 + 4^2)

58. sumprod - 数组的求和与乘积

  • sum 计算数组中元素的总和。
  • prod 计算数组中元素的乘积。
A = [1, 2, 3, 4];
total_sum = sum(A);    % 结果为 10
total_prod = prod(A);  % 结果为 24

59. cumprod - 累积乘积

cumprod 计算数组的累积乘积,即前 n 个元素的乘积。

A = [1, 2, 3, 4];
cum_product = cumprod(A);  % 结果为 [1, 2, 6, 24]

60. movmean - 移动平均值

movmean 用于计算数据的移动平均值,通常用于数据平滑。

A = [1, 2, 3, 4, 5, 6];
mov_avg = movmean(A, 3);  % 计算 3 个元素的移动平均值
% 结果为 [1.5, 2, 3, 4, 5, 5.5]

61. meshsurf - 三维网格和曲面图

  • mesh 用于绘制三维网格图。
  • surf 用于绘制三维曲面图。
[X, Y] = meshgrid(-5:0.5:5, -5:0.5:5);
Z = X.^2 + Y.^2;
figure;
mesh(X, Y, Z);   % 绘制网格图
figure;
surf(X, Y, Z);   % 绘制曲面图

62. contour - 等高线图

contour 用于绘制二维数据的等高线图。

[X, Y] = meshgrid(-5:0.5:5, -5:0.5:5);
Z = X.^2 + Y.^2;
contour(X, Y, Z);  % 绘制等高线图

63. sub2indind2sub - 坐标和线性索引之间的转换

  • sub2ind 将矩阵的行列坐标转换为线性索引。
  • ind2sub 将线性索引转换为矩阵的行列坐标。
A = zeros(3, 3);
linear_index = sub2ind(size(A), 2, 3);  % 将 (2, 3) 转换为线性索引
[row, col] = ind2sub(size(A), linear_index);  % 将线性索引转换回 (2, 3)

64. accumarray - 累加数组

accumarray 根据索引对数组进行累加,常用于统计和分组计算。

subs = [

1; 2; 4; 2; 4];  % 指定累加的索引
vals = [10; 20; 30; 40; 50];  % 要累加的值
result = accumarray(subs, vals);  % 结果为 [10; 60; 0; 80]

65. pcolor - 伪彩色图

pcolor 用于显示矩阵数据的伪彩色图。

Z = peaks;
pcolor(Z);  % 显示伪彩色图
colorbar;   % 添加颜色条


66. imfilter - 图像滤波

imfilter 用于对图像进行滤波操作,通常用于图像平滑、锐化等操作。

I = imread('peppers.png');
h = fspecial('sobel');         % 创建 Sobel 滤波器
filteredI = imfilter(I, h);    % 对图像应用滤波
imshow(filteredI);             % 显示滤波后的图像

67. im2bw - 转换为二值图像

im2bw 用于将灰度图像转换为二值图像(黑白图像)。不过在新版本中推荐使用 imbinarize

I = rgb2gray(imread('peppers.png'));
BW = im2bw(I, 0.5);    % 使用阈值 0.5 转换为二值图像
imshow(BW);

68. bwarea - 计算二值图像中白色区域的面积

bwarea 用于计算二值图像中白色像素的面积。

BW = imread('text.png');  % 加载二值图像
area = bwarea(BW);        % 计算白色区域的面积
disp(area);

69. bwareafilt - 提取二值图像中面积最大的连通区域

bwareafilt 提取二值图像中面积最大的几个连通区域,常用于目标提取。

BW = imread('text.png');
largest_region = bwareafilt(BW, 1);  % 提取面积最大的区域
imshow(largest_region);

70. bwlabel - 对二值图像中的连通区域进行标记

bwlabel 用于对二值图像中的连通区域进行标记,为每个区域分配一个唯一的标签。

BW = imread('text.png');
L = bwlabel(BW);   % 对连通区域进行标记
imshow(label2rgb(L));  % 显示标记图像

71. regionprops - 测量图像区域属性

regionprops 用于测量图像中连通区域的各种属性(如面积、边界框等)。

BW = imread('text.png');
stats = regionprops(BW, 'Area', 'BoundingBox');  % 获取区域的面积和边界框信息
disp(stats);

72. imhist - 显示图像直方图

imhist 用于显示图像的灰度直方图。

I = rgb2gray(imread('peppers.png'));
imhist(I);  % 显示灰度图像的直方图

73. histeq - 直方图均衡化

histeq 用于对图像进行直方图均衡化,增强图像的对比度。

I = rgb2gray(imread('peppers.png'));
I_eq = histeq(I);  % 对图像进行直方图均衡化
imshow(I_eq);

74. edge - 边缘检测

edge 用于对图像进行边缘检测,可以选择不同的边缘检测算法(如 Canny、Sobel 等)。

I = rgb2gray(imread('peppers.png'));
BW = edge(I, 'canny');  % 使用 Canny 算法进行边缘检测
imshow(BW);

75. watershed - 分水岭算法分割

watershed 用于图像分割,特别适合用于复杂区域的分割。

I = imread('coins.png');
L = watershed(I);  % 对图像进行分水岭分割
imshow(label2rgb(L));

76. meshc - 带等高线的三维网格图

meshc 用于绘制带等高线的三维网格图。

[X, Y] = meshgrid(-5:0.5:5, -5:0.5:5);
Z = X.^2 + Y.^2;
meshc(X, Y, Z);  % 绘制带等高线的三维网格图

77. gradient - 计算数值梯度

gradient 用于计算数组的数值梯度。

[X, Y] = meshgrid(-5:0.5:5, -5:0.5:5);
Z = X.^2 + Y.^2;
[dzdx, dzdy] = gradient(Z);  % 计算 Z 的梯度
quiver(X, Y, dzdx, dzdy);    % 绘制梯度矢量场

78. pca - 主成分分析

pca 用于对数据进行主成分分析,常用于数据降维。

data = randn(100, 3);   % 随机生成 100x3 数据
[coeff, score] = pca(data);  % 对数据进行 PCA 分析
disp(coeff);  % 输出主成分系数

79. polyder - 计算多项式的导数

polyder 用于计算多项式的导数,适合求解一维函数的导数。

p = [3, 2, 1];    % 多项式 3x^2 + 2x + 1
dp = polyder(p);  % 计算导数,结果为 [6, 2]

80. roots - 求解多项式的根

roots 用于计算多项式的所有根。

p = [1, -3, 2];  % 多项式 x^2 - 3x + 2
r = roots(p);    % 结果为 [2; 1]

81. polyval - 评估多项式

polyval 用于计算多项式在特定点的值。

p = [1, -3, 2];  % 多项式 x^2 - 3x + 2
x = 1.5;
y = polyval(p, x);  % 计算 p(1.5) 的值

82. deconv - 多项式的除法

deconv 用于对两个多项式进行除法运算。

p = [1, -3, 2];     % 被除多项式
q = [1, -1];        % 除多项式
[quotient, remainder] = deconv(p, q);  % 计算商和余数

83. interp2 - 二维插值

interp2 用于对二维数据进行插值。

[X, Y] = meshgrid(1:5, 1:5);
Z = X.^2 + Y.^2;
[Xq, Yq] = meshgrid(1:0.1:5, 1:0.1:5);
Zq = interp2(X, Y, Z, Xq, Yq);  % 二维插值
surf(Xq, Yq, Zq);               % 绘制插值后的曲面图

84. spdiags - 创建稀疏对角矩阵

spdiags 用于生成稀疏对角矩阵,可以显著减少内存占用。

d = [1:5]';         % 对角线元素
S = spdiags(d, 0, 5, 5);  % 生成 5x5 稀疏对角矩阵
disp(S);

85. sparse - 创建稀疏矩阵

sparse 用于创建稀疏矩阵,以节省内存和加快计算速度。

A = sparse([1, 2, 3], [1, 2, 3], [10, 20, 30], 5, 5);  % 创建 5x5 稀疏矩阵
disp(A);

86. spy - 可视化稀疏矩阵

spy 用于绘制稀疏矩阵的非零元素位置。

A = sparse([1, 2, 3], [1, 2, 3], [10, 20, 30], 5, 5);
spy(A);  % 可视化稀疏矩阵

87. find - 查

找满足条件的数组索引

find 返回数组中满足条件的元素索引。

A = [5, 10, 15, 20];
indices = find(A > 10);  % 找到大于 10 的元素索引
disp(indices);           % 结果为 [3, 4]

88. diff - 计算相邻元素的差分

diff 用于计算数组中相邻元素的差,通常用于数值微分。

A = [1, 3, 6, 10];
differences = diff(A);  % 结果为 [2, 3, 4]

89. cumsum - 计算累积和

cumsum 用于计算数组的累积和。

A = [1, 2, 3, 4];
cum_sum = cumsum(A);  % 结果为 [1, 3, 6, 10]

90. cumprod - 计算累积积

cumprod 用于计算数组的累积积。

A = [1, 2, 3, 4];
cum_product = cumprod(A);  % 结果为 [1, 2, 6, 24]

91. flipud - 上下翻转矩阵

flipud 用于将矩阵沿垂直方向(上下)翻转。

A = [1, 2; 3, 4];
B = flipud(A);  % 结果为 [3, 4; 1, 2]

92. fliplr - 左右翻转矩阵

fliplr 用于将矩阵沿水平方向(左右)翻转。

A = [1, 2; 3, 4];
B = fliplr(A);  % 结果为 [2, 1; 4, 3]

93. repmat - 重复数组

repmat 用于将数组重复指定的次数,生成更大的数组。

A = [1, 2];
B = repmat(A, 2, 3);  % 结果为 2x3 的矩阵:[1, 2, 1, 2, 1, 2]

94. padarray - 数组填充

padarray 用于对数组进行边界填充,常用于图像处理。

A = [1, 2; 3, 4];
B = padarray(A, [1, 1], 0);  % 使用 0 填充矩阵的边界

95. circshift - 循环移位

circshift 用于将数组的元素进行循环移位。

A = [1, 2, 3, 4];
B = circshift(A, 2);  % 循环右移 2 个位置,结果为 [3, 4, 1, 2]

96. fftshift - 移动 FFT 结果的零频分量

fftshift 用于将快速傅里叶变换结果中的零频分量移到中心位置。

Y = fft(eye(8));  
Y_shifted = fftshift(Y);  % 移动 FFT 结果的零频分量

97. unwrap - 角度展开

unwrap 用于展开角度序列,避免跳变现象,常用于相位分析。

angles = [0, pi, -pi, pi, -pi];
unwrapped = unwrap(angles);  % 展开角度,结果为 [0, pi, 2*pi, 3*pi, 4*pi]

98. findpeaks - 寻找数据中的峰值

findpeaks 用于寻找数据中的峰值位置和大小,常用于信号处理。

data = [1, 3, 2, 4, 3, 5];
[pks, locs] = findpeaks(data);  % 找到峰值及其位置

99. detrend - 去除数据中的趋势

detrend 用于去除数据中的线性趋势,常用于信号预处理。

t = 0:0.1:10;
signal = t + sin(t);  % 包含线性趋势的信号
detrended_signal = detrend(signal);  % 去除趋势

100. griddata - 插值散点数据

griddata 用于在不规则的散点数据上进行插值。

x = rand(10, 1);
y = rand(10, 1);
z = sin(x) + cos(y);
[Xq, Yq] = meshgrid(0:0.1:1, 0:0.1:1);
Zq = griddata(x, y, z, Xq, Yq);  % 插值散点数据
mesh(Xq, Yq, Zq);                % 显示插值结果

以上涵盖了 MATLAB 中 100 个常用的函数和操作。这些函数几乎涉及 MATLAB 中的数据处理、矩阵运算、图像处理、信号处理、可视化等多个方面,是进行 MATLAB 编程的重要工具。希望这些内容能对你在 MATLAB 中的学习和项目开发有所帮助!

matlab函数大全-matlab函数大全.doc 比较白痴的东西,不过对初学者也许有用,特分享一下。不要喷我哦!函数具体用法可以用help查一下。附件内容与下面一样的。 Aabs 绝对值、模、字符的ASCII码值 acos 反余弦 acosh 反双曲余弦 acot 反余切 acoth 反双曲余切 acsc 反余割 acsch 反双曲余割 align 启动图形对象几何位置排列工具 all 所有元素非零为真 angle 相角 ans 表达式计算结果的缺省变量名 any 所有元素非全零为真 area 面域图 argnames 函数M文件宗量名 asec 反正割 asech 反双曲正割 asin 反正弦 asinh 反双曲正弦 assignin 向变量赋值 atan 反正切 atan2 四象限反正切 atanh 反双曲正切 autumn 红黄调秋色图阵 axes 创建轴对象的低层指令 axis 控制轴刻度和风格的高层指令 B b bar 二维直方图 bar3 三维直方图 bar3h 三维水平直方图 barh 二维水平直方图 base2dec X进制转换为十进制 bin2dec 二进制转换为十进制 blanks 创建空格串 bone 蓝色调黑白色图阵 box 框状坐标轴 break while 或for 环中断指令 brighten 亮度控制 C c capture (3版以前)捕获当前图形 cart2pol 直角坐标变为极或柱坐标 cart2sph 直角坐标变为球坐标 cat 串接成高维数组 caxis 色标尺刻度 cd 指定当前目录 cdedit 启动用户菜单、控件回调函数设计工具 cdf2rdf 复数特征值对角阵转为实数块对角阵 ceil 向正无穷取整 cell 创建元胞数组 cell2struct 元胞数组转换为构架数组 celldisp 显示元胞数组内容 cellplot 元胞数组内部结构图示 char 把数值、符号、内联类转换为字符对象 chi2cdf 分布累计概率函数 chi2inv 分布逆累计概率函数 chi2pdf 分布概率密度函数 chi2rnd 分布随机数发生器 chol Cholesky分解 clabel 等位线标识 cla 清除当前轴 class 获知对象类别或创建对象 clc 清除指令窗 clear 清除内存变量和函数 clf 清除图对象 clock 时钟 colorcube 三浓淡多彩交叉色图矩阵 colordef 设置色彩缺省值 colormap 色图 colspace 列空间的基 close 关闭指定窗口 colperm 列排序置换向量 comet 彗星状轨迹图 comet3 三维彗星轨迹图 compass 射线图 compose 求复合函数 cond (逆)条件数 condeig 计算特征值、特征向量同时给出条件数 condest 范 -1条件数估计 conj 复数共轭 contour 等位线 contourf 填色等位线 contour3 三维等位线 contourslice 四维切片等位线图 conv 多项式乘、卷积 cool 青紫调冷色图 copper 古铜调色图 cos 余弦 cosh 双曲余弦 cot 余切 coth 双曲余切 cplxpair 复数共轭成对排列 csc 余割 csch 双曲余割 cumsum 元素累计和 cumtrapz 累计梯形积分 cylinder 创建圆柱 D d dblquad 二重数值积分 deal 分配宗量 deblank 删去串尾部的空格符 dec2base 十进制转换为X进制 dec2bin 十进制转换为二进制 dec2hex 十进制转换为十六进制 deconv 多项式除、解卷 delaunay Delaunay 三角剖分 del2 离散Laplacian差分 demo Matlab演示 det 行列式 diag 矩阵对角元素提取、创建对角阵 diary Matlab指令窗文本内容记录 diff 数值差分、符号微分 digits 符号计算中设置符号数值的精度 dir 目录列表 disp 显示数组 display 显示对象内容的重载函数 dlinmod 离散系统的线性化模型 dmperm 矩阵Dulmage-Mendelsohn 分解 dos 执行DOS 指令并返回结果 double 把其他类型对象转换为双精度数值 drawnow 更新事件队列强迫Matlab刷新屏幕 dsolve 符号计算解微分方程 E e echo M文件被执行指令的显示 edit 启动M文件编辑器 eig 求特征值和特征向量 eigs 求指定的几个特征值 end 控制流FOR等结构体的结尾元素下标 eps 浮点相对精度 error 显示出错信息并中断执行 errortrap 错误发生后程序是否继续执行的控制 erf 误差函数 erfc 误差补函数 erfcx 刻度误差补函数 erfinv 逆误差函数 errorbar 带误差限的曲线图 etreeplot 画消去树 串演算指令 in 跨空间串演算指令 exist 检查变量或函数是否已定义 exit 退出Matlab环境 exp 指数函数 expand 符号计算中的展开操作 expint 指数积分函数 expm 常用矩阵指数函数 expm1 Pade法求矩阵指数 expm2 Taylor法求矩阵指数 expm3 特征值分解法求矩阵指数 eye 单位阵 ezcontour 画等位线的简捷指令 ezcontourf 画填色等位线的简捷指令 ezgraph3 画表面图的通用简捷指令 ezmesh 画网线图的简捷指令 ezmeshc 画带等位线的网线图的简捷指令 ezplot 画二维曲线的简捷指令 ezplot3 画三维曲线的简捷指令 ezpolar 画极坐标图的简捷指令 ezsurf 画表面图的简捷指令 ezsurfc 画带等位线的表面图的简捷指令 F f factor 符号计算的因式分解 feather 羽毛图 feedback 反馈连接 f 执行由串指定的函数 fft 离散Fourier变换 fft2 二维离散Fourier变换 fftn 高维离散Fourier变换 fftshift 直流分量对中的谱 fieldnames 构架域名 figure 创建图形窗 fill3 三维多边形填色图 find 寻找非零元素下标 findobj 寻找具有指定属性的对象图柄 findstr 寻找短串的起始字符下标 findsym 机器确定内存中的符号变量 finverse 符号计算中求反函数 fix 向零取整 flag 红白蓝黑交错色图阵 fliplr 矩阵的左右翻转 flipud 矩阵的上下翻转 flipdim 矩阵沿指定维翻转 floor 向负无穷取整 flops 浮点运算次数 flow Matlab提供的演示数据 fmin 求单变量非线性函数极小值点(旧版) fminbnd 求单变量非线性函数极小值点 fmins 单纯形法求多变量函数极小值点(旧版) fminunc 拟牛顿法求多变量函数极小值点 fminsearch 单纯形法求多变量函数极小值点 fnder 对样条函数求导 fnint 利用样条函数求积分 fnval 计算样条函数区间内任意一点的值 fnplt 绘制样条函数图形 fopen 打开外部文件 for 构成for环用 format 设置输出格式 fourier Fourier 变换 fplot 返函绘图指令 fprintf 设置显示格式 fread 从文件读二进制数据 fsolve 求多元函数的零点 full 把稀疏矩阵转换为非稀疏阵 funm 计算一般矩阵函数 funtool 函数计算器图形用户界面 fzero 求单变量非线性函数的零点 G g gamma 函数 gammainc 不完全 函数 gammaln 函数的对数 gca 获得当前轴句柄 gcbo 获得正执行"回调"的对象句柄 gcf 获得当前图对象句柄 gco 获得当前对象句柄 geomean 几何平均值 get 获知对象属性 getfield 获知构架数组的域 getframe 获取影片的帧画面 ginput 从图形窗获取数据 global 定义全局变量 gplot 依图论法则画图 gradient 近似梯度 gray 黑白灰度 grid 画分格线 griddata 规则化数据和曲面拟合 gtext 由鼠标放置注释文字 guide 启动图形用户界面交互设计工具 H h harmmean 调和平均值 help 在线帮助 helpwin 交互式在线帮助 helpdesk 打开超文本形式用户指南 hex2dec 十六进制转换为十进制 hex2num 十六进制转换为浮点数 hidden 透视和消隐开关 hilb Hilbert矩阵 hist 频数计算或频数直方图 histc 端点定位频数直方图 histfit 带正态拟合的频数直方图 hold 当前图上重画的切换开关 horner 分解成嵌套形式 hot 黑红黄白色图 hsv 饱和色图 附件:[post] matlab函数大全.doc [/post]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值