Есть ли какая-либо функция для Matlab для конкатенирования массива с помощью условия? - PullRequest
1 голос
/ 06 января 2020

У меня есть этот python код для объединения двух массивов с использованием нескольких условий, например, приведенных ниже

good_left_inds = ((nonzeroy >= win_y_low) & (nonzeroy < win_y_high) & 
    (nonzerox >= win_xleft_low) &  (nonzerox < win_xleft_high)).nonzero()

есть ли какой-либо эквивалентный MatLab-код для работы с таким массивом?

1 Ответ

1 голос
/ 06 января 2020

Да, есть. Посмотрите на функцию MATLABs find. Его документация гласит:

Найти индексы и значения ненулевых элементов

Это в основном то же, что делает numpy.nonzero. Логические выражения практически идентичны python коду.

% You are only interested in the indices, so you can omit the values as return parameter
[good_left_inds, ~] = find(nonzerox >= win_y_low & nonzerox < win_y_high & ...
    nonzerox >= win_xleft_low & nonzerox < win_xleft_high);

При сравнении результатов помните, что индексирование MATLAB начинается с 1, а не с 0, как в python.

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