一般来说,==运算符不适合测试“数字”相等性,但应该做类似abs(a - b) < eps
这样的事情。 。但是,当我想找到数组中最大元素的位置时,是否可以假设 max
会返回元素不变吗?这样做可以吗
[row, col] = find(a == max(a(:));
最佳答案
是的。
max
仅比较两个值,并且不对它们执行任何可能更改其值的操作。
这是 max
的典型 C++ 实现:
template <class T>
T max(T a, T b) {
return a>b ? a : b;
}
如您所见,此函数将返回与 a
或 b
完全相同的值。
Matlab 只是添加了矩阵形式、花式格式化包装器等,但其内核将遵循与上面示例相同的原则。
所以,是的,在这里使用相等是可以的。
关于matlab - max 会引入舍入误差吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13702138/