我想获取数组中每个项目的最大值与 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<5
是 false
包含 NaN
的元素值不会设置为 5。如果您希望它的行为与 max
完全相同你可以试试这个:
>> values(~(values >= 5)) = 5
values =
5 5 5 5 Inf
关于matlab - 为什么 matlab 中 max 的这两种实现不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18946165/