MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   资料存档 (https://www.labfans.com/bbs/forumdisplay.php?f=72)
-   -   “矩阵是否包含值X?”的函数 (https://www.labfans.com/bbs/showthread.php?t=22995)

poster 2019-12-10 16:49

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


回答:
有很多方法可以做到这一点。 ismember是第一个想到的成员,因为这是您希望采取的固定成员资格操作。从而

X = primes(20); ismember([15 17],X) ans = 0 1 因为15不是素数,但是17是,ismember在这里做得很好。

当然,查找(或任何查找)也将起作用。但是这些不是按照ismember的意义进行向量化的。我们可以测试以查看X表示的集合中是否包含15,但是要测试这两个数字将需要循环或连续进行测试。

~isempty(find(X == 15)) ~isempty(find(X == 17)) 要么,

any(X == 15) any(X == 17) 最后,我要指出的是,如果数字可能是真实的浮点数,则测试精确值非常危险。如我所示,对整数值进行测试很容易。但是针对浮点数的测试通常应采用公差。

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


所有时间均为北京时间。现在的时间是 14:17

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.