Как проверить, существует ли пара значений в массиве 2d Matlab? - PullRequest
0 голосов
/ 24 мая 2018

Скажем, у меня есть

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

Если у меня тогда есть x = 3, y = 7, как я могу проверить, что (3,7) существует в массиве a, но также убедиться, что если я проверюдля пары x = 3, y = 8 (3,8), тогда он возвращает false и НЕ true?

РЕДАКТИРОВАТЬ: (3,7) должен возвращать true, но (3,8) false, потому что 3 и 7 находятся в одном столбце, а 3 и 8 нет.Также (7,3) должно быть ложным, потому что для (x,y), x соответствует элементу в 1-й строке и y во 2-й строке

EDIT2: я вижу isPresent = any(ismember(a.', [x y], 'rows')); для массива a,

Но что, если у меня есть это: b=[1 5; 2 6; 3 7; 4 8].Тогда как я могу убедиться, что (3,7) верно, а (7,3) неверно?

1 Ответ

0 голосов
/ 24 мая 2018

Самый простой способ - использовать ismember , но он работает со строками, а не со столбцами, поэтому сначала нам нужно транспонировать матрицу:

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

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

>> isPresent
isPresent = 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...