max会引入舍入错误吗?

时间:2012-12-04 11:44:14

标签: matlab max precision

通常,==运算符不适合测试“数字”相等,但应该更像abs(a - b) < eps。但是,当我想找到数组中最大元素的位置时,是否可以假设max将返回元素不变?可以吗

[row, col] = find(a == max(a(:));

1 个答案:

答案 0 :(得分:3)

max仅比较两个值,并且不会对它们执行任何可能更改其值的操作。

这是max的典型C ++实现:

template <class T>
T max(T a, T b) {
    return a>b ? a : b; 
}

如您所见,此函数将返回完全ab相同的值。

Matlab只是添加了矩阵形式,花式格式化包装器等,但它的内核将遵循与上述示例相同的原则。

所以是的,可以在这里使用相等。