如何检查2d Matlab数组中是否存在值对?

时间:2018-05-23 22:12:47

标签: matlab

说我有

a=[1 2 3 4; 5 6 7 8];

如果我有x = 3,y = 7,我如何检查数组a中是否存在(3,7),但是如果我检查对x = 3,则y = 8 (3,8),那么它返回false而不是真的?

编辑:(3,7)应该返回true但是(3,8)应该返回false,因为3和7在同一列中,但是3和8不在。另外(7,3)应该是假的,因为对于(x,y)x对应于第1行中的元素而{2}对应于第2行

EDIT2:我看到了y的arrray isPresent = any(ismember(a.', [x y], 'rows'));

但如果我有这个:a。那我怎样才能确保(3,7)为真,但(7,3)是假的?

1 个答案:

答案 0 :(得分:4)

最简单的方法是使用ismember,但它适用于行而不是列,因此我们需要首先转置矩阵:

x = 3;
y = 7;
a=[1 2 3 4; 5 6 7 8];

isPresent = any(ismember(a.', [x y], 'rows'));

>> isPresent
isPresent = 1