Хотя цель не ясна, решением является создание индексации для матрицы
Мое решение -
checkint = @(x) ~isinf(x) & floor(x) == x % It's very fast in a big array
[a(checkint(a))' b(checkint(a))']
Ключом здесь является создание индекса для a
и b
, для которого он является логическим вектором целочисленных значений в a
. Эта функция checkint
хорошо проверяет целое число.
Другие подходы к проверке целого числа могут быть
checkint = @(x)double(uint64(x))==x % Slower but it works fine
или
checkint = @(x) mod(x,1) == 0 % Slowest, but it's robust and better for understanding what's going on
или
checkint = @(x) ~mod(x,1) % Slowest, treat 0 as false
Это обсуждалось во многих других темах.