matlab - 为什么 matlab 中 max 的这两种实现不同?

标签 matlab

我想获取数组中每个项目的最大值与 5 相比。这两个片段之间有什么不同?

values = max(values, 5);

values(values < 5) = 5;

有什么区别吗?

最佳答案

如果你的矩阵有NaN,那就有区别了值:

>> values = [1 2 NaN -Inf Inf]
values =
     1     2   NaN  -Inf   Inf

>> max(values, 5)
ans =
     5     5     5     5   Inf

>> values(values < 5) = 5
values =
     5     5   NaN     5   Inf

如您所见max(NaN, 5) == 5但自从 NaN<5false包含 NaN 的元素值不会设置为 5。如果您希望它的行为与 max 完全相同你可以试试这个:

>> values(~(values >= 5)) = 5
values =
     5     5     5     5   Inf

关于matlab - 为什么 matlab 中 max 的这两种实现不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18946165/

相关文章:

matlab - 在matlab中寻找多变量区间内的解

matlab - 如何在 Matlab 中将原点设置为轴的中心

matlab - 为什么 `minmax` 比连续的 `min` 和 `max` 花费的时间更长?

matlab - 使用mex时出错未知文件扩展名 ' '。 Matlab Ubuntu

matlab - 按顺时针顺序检测非凸多边形的角坐标 MATLAB

windows - Matlab中从一个文件夹中读取多个图像的问题

matlab - 从单列数据集中提取行 block 以分隔连续列

matlab - 如何在 MATLAB 中实现本福德定律

function - MatLab - 将函数应用于矩阵中的每一行

matlab - 在不使用 'for' 循环的情况下访问 MATLAB 中矩阵的所有元素