与 5 相比,我想获得数组中每个项目的最大值。这两个片段之间有什么不同?
values = max(values, 5);
和
values(values < 5) = 5;
有区别吗?
与 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
isfalse
包含NaN
value 的元素不会设置为 5。如果您希望它的行为与您完全一样max
,可以尝试以下操作:
>> values(~(values >= 5)) = 5
values =
5 5 5 5 Inf
在这个实现中,两者都会给出相同的结果。
在一般情况下max(A,B)
,输出包含每个元素的最大值A
或处的最大值。那么一般等价物将B
是A(A<B) = B(A<B);
AFAIK没有区别
但是第二个你不能保留你的旧矩阵,但是如果你改变输出变量名,你可以使用第一个。