2014-02-03 3 views
0

Здравствуйте я знаю, что этот способ построить в MatLab работ:Участок с питоном

subplot(2,2,[1, 2]) 
plot(Tabsauv(:, 2:2:2*Ntracks), Tabsauv(:, 3:2:(2*Ntracks+1)),couleur,'LineWidth',2, 'MarkerSize', 2) 
grid('on') 
hold on 

Когда Tabasauv таблица значений.

Я новый новичок в python, я попытался построить это таким образом с помощью python, но он все еще не работает, никакой идеи?

80 Ntracks=5 
81 fig= plt.figure() 
82 ax=fig.add_subplot(1,1,1) 
83 
84 data_1=np.array([:,2:2:(2*Ntracks)]) 
85 data_2=np.array([:,3:2:(2*Ntracks+1]) 
86 points = data[:,2:4] 
87 
88 color = np.sqrt((points**2).sum(axis = 1))/np.sqrt(2.0) 
89 rgb = plt.get_cmap('jet')(color) 
90 
91 ax.scatter(data_1, data_2, color = rgb) 
92 plt.show() 

Я получил эту ошибку Caus' я не знаю, как перевести его в Python:

data_1=np.arange([:,2:2:(2*Ntracks)]) 
        ^
SyntaxError: invalid syntax 

Спасибо.

+2

Вы получите ответ очень быстро, если вы просто (четко) заявили, что хотите «np.arange ([:, 2: 2: (2 * Ntracks)]). Как бы то ни было, я добавил «numpy» и «matlab» в ваши теги, чтобы вы могли найти кого-то, кто знает оба (для меня Matlab был слишком много лет назад). – tom10

+0

Вы должны прочитать http://wiki.scipy.org/NumPy_for_Matlab_Users – tacaswell

ответ

2

В Matlab вы можете создавать массивы с помощью «:». В Python можно создавать массивы, используя функцию диапазона() или с помощью arange (в NumPy)

так,

a = 3:5 

в MATLAB является такой же, как

a = np.arange(3,5) #or 
a = np.array(range(3,5)) 

в Python.

В любом случае, возможно, вам захочется взглянуть на эту страницу http://wiki.scipy.org/NumPy_for_Matlab_Users, чтобы перевести код \ мыслей из Matlab в Numpy.

+0

Спасибо за ваш ответ, теперь он работает лучше! – user3263704

0

Вы, вероятно, означает

data_1 = data[:,2:(2*Ntracks):2] 

вместо в вашем коде, а так же для data_2.

Еще несколько вещей, чтобы отметить:

  1. В numpy индексы начинаются с 0. data[:,1:] пропустит первый столбец. При выполнении перевода следите за ошибкой.

  2. Нарезка работает несколько иначе. Шаг указан последним числом, которое в этом случае равно 2, а не среднее (отличное от соглашения Matlab).

Смежные вопросы