#python #matlab #numpy
#python #matlab #numpy
Вопрос:
Я пытаюсь адаптировать некоторый код matlab в python, и конкретная строка такова
0:1/2047:1
Что такое эквивалент python приведенной выше строки?
Я интерпретирую это как
a = np.arange(1,2048,1)
b = 1/a[::-1]
но я не уверен, правильно ли это.
Комментарии:
1. Что вы не понимаете из документации по языку MATLAB?
2. Я не знаю, как это назвать
0:1/2047:1
, чтобы иметь возможность искать документы MATLAB.3. Я не знаю, потому что я тоже его не искал. Я узнаю синтаксис, но это все. Я пытаюсь заставить OP обновить это до полностью корректного вопроса.
4. Вот документ MATLAB для этого синтаксиса: mathworks.com/help/matlab/ref/colon.html
5. MATLAB использует
start: step: stop
порядок, в отличие от порядка python / numpystart, stop, step
. Вы можете вывести это из значений и того, что имеет смысл.
Ответ №1:
В сеансе Octave (бесплатный исходный код)
>> 1:5
ans =
1 2 3 4 5
>> 1:.5:5
ans =
Columns 1 through 7:
1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000
Columns 8 and 9:
4.5000 5.0000
Очевидно, что это вариант для numpy np.arange
.
Также linspace
есть версия, которая еще ближе к numpy
версии (MATLAB была первой):
>> linspace(1,5,10)
ans =
Columns 1 through 8:
1.0000 1.4444 1.8889 2.3333 2.7778 3.2222 3.6667 4.1111
Columns 9 and 10:
4.5556 5.0000