Я пытаюсь перевести некоторый код Matlab в Python (используя NumPy). Я не очень хорошо знаком с Matlab, и я обнаружил, что линия у меня возникают проблемы синтаксического анализа:Перевести векторное назначение Matlab в форму Python
w(idx(1:p, 1), 1) = v(idx(1:p, 1), 1) - theta;
я догадку, что p
-длинный глава x
используется в качестве индексов для выбора p
записей w
и что те записи в w
заменяются соответствующими записями в v
(за исключением скаляра theta
).
Прослушивание в Октаве, это похоже на точное описание того, что он делает, но я не могу найти документацию на этот счет.
В любом случае, что является лучшим способом переписать этот код в Python? Я посмотрел на предустановленный учебник NumPy, чтобы попытаться найти элегантный способ сделать это, и похоже, что this может быть тем, что я ищу. Тем не менее, у меня проблемы с тем, что он выглядит хорошо, особенно с оператором присваивания. Существуют ли более элегантные или Python-идиоматические способы выполнения этой операции назначения?
Что вы говорите, звучит правильно. Это может помочь вам в переводе: http://www.scipy.org/NumPy_for_Matlab_Users, но я думаю, что w (idx (1: p, 1), 1) 'становится' w [idx [: p, 1] , 1] 'в python – Dan
не забывайте о нулевом сравнении с однонаправленным индексированием – Amro