Что означает: в синтаксисе matlab и как перевести это на python?

#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 / numpy start, 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