2015-04-06 1 views
-1

Итак, я хочу решить уравнение z с двумя переменными (например, x и y, имеющими 50 значений). Я хочу, чтобы вычислить что-то вроде:Как решить уравнение с двумя переменными в python

import numpy as np 
x = np.linspace(0, 50, 51) 
y = np.linspace(100, 150, 51) 

z=y-x 

print z 

with open("output_data.csv","w") as out_file: 
    for i in range(len(x)): 
     #print i 
     out_string="" 
     out_string+=str(x[i]) 
     #out_string+=str(real(ky2)[i]) 
     #print out_string 
     out_string += "," + str(z[i]) 
     out_string += "\n" 
     out_file.write(out_string) 

Однако я хочу, чтобы вычислить первый х со всеми у это вторая х со всеми; y снова и так далее, пока не получу набор из 50 значений z, каждый из которых имеет 50 значений. Затем сохраните файл из 50 колонок.

Что мой код делает так, что жир вычисляет только 50 z для 1-го x и 1-го y, 2-го и 2-го y и так далее.

Любые идеи?

ответ

1

Вы должны изменить свой код, чтобы вы вычислить z внутри for цикла:

for i in range(len(x)): 
    words = [] 
    z = y-x[i] 
    words.append(str(x[i])) 
    words.append(", ".join((str(_z) for _z in z))) 
    outfile.write(": ".join(words)) 
    outfile.write("\n") 

С вашего кода, вы только вычислить z один раз (вне цикла), и это делает вещь мудр разница y и x, как вы видите.

Сказав это, вы должны изменить свой код, чтобы не делать str += .... Если вы накапливаете строки, используйте вместо этого список:

words = [] 
words.append(str(x[i]) ... 
+0

Я сделал первую часть, и она действительно работает нормально, но замена str словами не помогла. Не могли бы вы быть более ясными в этой части? – Mac

+1

Я добавил обновление, которое иллюстрирует использование списка 'words'. В основном вы создавали новую строку для каждого '+', который вы вызывали на свой out_string. Хранение компонентов в 'list' (слова) является общей идиомой python и используется для более эффективного создания более длинных строк. – vikramls

+0

Это только дает мне ошибку: words = [] ^ IndentationError: ожидается отступом блок – Mac

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

  • Нет связанных вопросов^_^