matlab - max 会引入舍入误差吗?

标签 matlab max precision

一般来说,==运算符不适合测试“数字”相等性,但应该做类似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; 
}

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

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

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

关于matlab - max 会引入舍入误差吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13702138/

相关文章:

Matlab MCR 程序错误损坏终端

Python - 类型错误 : zip argument #1 must support iteration

sql - 如何在 HackerRank 上使用 SQL 查找具有最大折扣的产品

r - 管理浮点精度

c++ - 获取cout的精度

parallel-processing - 为什么我的 MATLAB 神经网络在使用并行处理时训练速度较慢?

matlab - 对索引求和

matlab - 如何创建采样值矩阵

python - pyplot 颜色条不显示精确值

mysql - 显示包含最新编辑版本的所有记录