matlab - 'does matrix contain value X?' 函数

标签 matlab function matrix floating-point

是否有内置的 MATLAB 函数来确定矩阵是否包含某个值? (ala PHP 的 in_array())

最佳答案

有很多方法可以做到这一点。 ismember 是第一个想到的,因为它是您希望采取的集合成员操作。因此

X = primes(20);
ismember([15 17],X)
ans =
      0    1

因为 15 不是质数,但 17 是质数,所以 ismember 在这里完成了它的工作。

当然,查找(或任何)也可以。但是这些并没有像 ismember 那样矢量化。我们可以测试 15 是否在 X 表示的集合中,但要测试这两个数字将需要循环或连续测试。

~isempty(find(X == 15))
~isempty(find(X == 17))

或者,

any(X == 15)
any(X == 17)

最后,我要指出,如果数字可能是真正的 float ,那么对精确值的测试是危险的。正如我所展示的,针对整数值的测试很容易。但是针对 float 的测试通常应该使用容差。

tol = 10*eps;
any(abs(X - 3.1415926535897932384) <= tol)

关于matlab - 'does matrix contain value X?' 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1913670/

相关文章:

jquery 通过名称调用函数

function - 如何从fishshell中删除函数而不直接删除函数文件?

mysql - 这个矩阵乘法在 SQL 中是如何工作的?

haskell - 将矩阵相加时出现问题

matlab - 当用户定义的类是结构的字段时,覆盖其值的显示方式

mysql - dll MATLAB,dll DBMS,blob?

php - 使用 PHP 将多个变量传递给函数的最佳实践是什么

arrays - 在 MATLAB 中计算一个矩阵与另一个矩阵之间的差矩阵

matlab - 是否可以检查重载 eq 的类的句柄相等性?

matlab - 如何在Matlab中加速代码?