Я использую массив ячеек, чтобы содержать векторы 1x2 местоположений сетки в форме [row, col]
. Я хотел бы проверить, включено ли другое местоположение сетки в этот массив ячеек.
К сожалению, мой текущий код приводит к ошибке, и я не совсем понимаю, почему:
in_range = ismember( 1, ismember({[player.row, player.col]}, proximity(:,1)) );
где player.row
и player.col
— целые числа, а первый столбец proximity
— это вышеупомянутый массив ячеек ячеек сетки.
ошибка, которую я получаю:
??? Error using ==> cell.ismember at 28
Input must be cell arrays of strings.
К сожалению, мне не удалось найти никакой информации об использовании ismember()
таким образом, только с массивами ячеек в виде строк или с отдельными целыми числами в каждой ячейке, а не с векторами.
Я рассматривал возможность преобразования с использованием num2str()
и str2num()
, но, поскольку я должен выполнять вычисления между преобразованиями и из-за количества итераций, код будет зацикливаться (10 000 циклов, 4 преобразования на цикл), этот метод кажется эм> запредельно.
Любая помощь здесь будет принята с благодарностью, спасибо
РЕДАКТИРОВАТЬ: Почему ismember()
возвращает эту ошибку? Обрабатывает ли он все векторы в массиве ячеек как массивы строк?
РЕДАКТИРОВАТЬ: Будет ли лучший/более эффективный метод определения, находится ли 1 в возвращаемом векторе, чем
ismember( 1, ismember(...))
?