Matlab最大与最小值函数之Max与Min

一、Max

在 MATLAB 中,max 函数用于计算数组或矩阵中的最大值。它可以返回最大值本身,也可以返回最大值的位置索引。max 函数非常灵活,可以处理不同类型的输入,包括向量、矩阵和多维数组。

基本语法

max(A)
[C,idx] = max(A)
[C,rowIdx,colIdx] = max(A)
max(A,[],dim)
max(A,B)
[C,idx] = max(A,B,[],dim)
  • A 和 B 是输入数组或矩阵。
  • C 是返回的最大值。
  • idx 是返回的最大值的位置索引。
  • rowIdx 和 colIdx 分别返回最大值所在的行和列索引(当 A 是矩阵时)。
  • dim 指定了要计算最大值的维度(例如,1 表示沿列方向,2 表示沿行方向)。

示例

  1. 计算向量中的最大值
    A = [1, 3, 2, 5, 4];
    maxValue = max(A);

    这里 maxValue 将是 5。

  2. 计算矩阵每列的最大值
    A = [1, 3, 2; 4, 1, 5; 7, 8, 0];
    [maxValuePerCol, colIdx] = max(A);

    这里 maxValuePerCol 将是每列的最大值 [7, 8, 5]colIdx 将是这些最大值在各自列中的行索引 [3, 3, 2]

  3. 计算矩阵每行的最大值
    [maxValuePerRow, rowIdx] = max(A, [], 2);

    这里 maxValuePerRow 将是每行的最大值 [4, 8, 7]rowIdx 将是这些最大值在各自行中的列索引 [2, 2, 1]。注意,这里使用了第二个参数 [] 和第三个参数 2 来指定沿行方向计算最大值。

  4. 计算两个数组中对应元素的最大值
    A = [1, 3, 2];
    B = [4, 1, 5];
    maxValue = max(A, B);

    这里 maxValue 将是 [4, 3, 5],即 A 和 B 中对应元素的最大值。

  5. 计算多维数组中的最大值

对于多维数组,你可以使用 dim 参数来指定要计算最大值的维度。例如,对于一个 3x3x3 的三维数组,你可以计算每个平面(2D 切片)上的最大值,或者计算整个数组中的全局最大值。

注意事项

  • 当使用 max 函数计算矩阵的最大值时,如果不指定维度(dim),则默认计算每列的最大值。
  • 当输入是两个数组时,max 函数会计算它们对应元素的最大值,并返回一个与输入数组相同大小的数组。
  • 对于多维数组,使用 dim 参数可以灵活地计算沿任意维度的最大值。

 

二、Min

在 MATLAB 中,min 函数用于查找数组或矩阵中的最小值。这个函数可以应用于向量、矩阵以及多维数组,并且可以返回最小值本身以及该最小值在数组中的位置索引(如果请求的话)。

基本用法

对于向量,min 函数返回一个标量,即该向量中的最小值。

% 创建一个向量
v = [3, 1, 4, 1, 5, 9, 2];

% 查找向量中的最小值
minValue = min(v);
disp('向量中的最小值:');
disp(minValue);

对于矩阵,min 函数默认会返回每列中的最小值,返回一个行向量。如果想要返回每行中的最小值,可以指定第二个参数为维度。

% 创建一个矩阵
A = [1, 3, 2; 4, 1, 5; 2, 6, 4];

% 查找矩阵中每列的最小值
minValueCol = min(A);
disp('每列的最小值:');
disp(minValueCol);

% 查找矩阵中每行的最小值
minValueRow = min(A, [], 2);
disp('每行的最小值:');
disp(minValueRow);

返回索引

如果想要知道最小值在数组中的位置,可以请求第二个输出参数,它将是包含最小值索引的数组。

% 查找向量中的最小值及其索引
[minValue, minIndex] = min(v);
disp('向量中的最小值:');
disp(minValue);
disp('向量中最小值的索引:');
disp(minIndex);

% 查找矩阵中每列的最小值及其索引
[minValueCol, minIndexCol] = min(A);
disp('每列的最小值:');
disp(minValueCol);
disp('每列最小值的索引:');
disp(minIndexCol);

注意,当应用于矩阵并请求索引时,返回的索引将对应于矩阵被展平为列向量后的位置。如果你想要得到在原始矩阵中的行和列索引,你需要进行一些额外的计算。

多维数组

min 函数也可以应用于多维数组。对于多维数组,你可以指定要沿其查找最小值的维度。

% 创建一个三维数组
B = rand(3, 4, 5); % 随机生成一个3x4x5的数组

% 查找第三维上的最小值(即每个2D切片的最小值)
minValue3D = min(B, [], 3);
disp('第三维上的最小值:');
disp(minValue3D);

 在这个例子中,minValue3D 将是一个3x4的矩阵,包含原始三维数组B在每个2D切片(即每个5x5的子矩阵)上的最小值。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浩瀚之水_csdn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值