2015-06-02 4 views
0

У меня есть следующий раздел Python:Numpy Ссылки на места массива в пределах, если заявления

for j in range(0,T): 
    for x in xrange(len(index)): 
     for y in xrange(x+1,len(index)): 
      if index(y) == index(x): 

      continue 

Для которых я пытаюсь успешно перевести с эквивалентной MATLAB. В MATLAB, эта операция проста следующим образом:

for iter = 1:T 
    for i = 1:length(index) 
    for j = i+1:length(index) 
     if index(j) == index(i) 
      continue; 
     end 

Однако при попытке выполнить свой код я получаю «numpy.ndarray объект не вызываемая» ошибка. Почему это возникает, и как я могу начать писать это в правильной форме python для успешного выполнения?

+1

Я предполагаю, что это означает, что вы хотите 'index [y] == index [x]' (квадратные скобки, а не скобки) – mgilson

+1

Также я думаю, что '' len' и matlab '' 'python отличаются. В python 'len' массива -' numpy.size (array, axis = 0) 'в matlab' length' - 'MAX (SIZE (MATRIX))'. –

+0

@BiRico - Вы правы. – rayryeng

ответ

2

Похоже index массив какой-то, но когда вы делаете index(y) и index(x), Python думает, что вы пытаетесь вызвать функцию index() использованием x и y в качестве параметров, соответственно.

Если вы пытаетесь просто получить доступ к элементам, используйте index[x] и index[y].

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