2016-09-07 5 views
-2

Мне нужно реализовать функцию для вычисления rms без использования numpy, используя данные, которые находятся в txt. У меня есть следующее:Внедрить rms без numpy

import numpy as np 
import matplotlib.pyplot as plt 
import math 

def main(): 

    # Cargando los datos 

    avrgPress = [] 
    press = [] 

    with open("C:\Users\SAULO\Downloads\prvspy.txt","r") as a: 
     for x in a: 
      columnas = x.split('\t') 
      avrgPress.append(float(columnas[0])) 
      press.append(float(columnas[1])) 

def error(avrgPress, press): 
    lista3 = [0]*len(lista) 
    for x in xrange(len(lista)): 
     lista3[x] = lista3[x] * sum(sqrt(float(1.0/1064) * (avrgPress - press)**2)) 
    return lista3 

if __name__ == '__main__': 
    main() 

Когда вы строите, а не rms. Любые предложения или решения?

+1

Что делать, и что он делает вместо этого? Почему «ошибка» определена, но (по-видимому) не используется? –

+0

Пожалуйста, объясните, что вы пытаетесь достичь здесь, среднеквадратическое значение - среднеквадратическое значение квадрата? Не используйте свою собственную стенографию, используемый вами rms-тег относится к системам управления записью на Java. – jhole89

+0

да, среднеквадратичное значение среднеквадратичного значения, у меня есть данные txt x, y и без numpy error error – user5376588

ответ

1

Это то, что вы хотите, rms(avrgPress)?

from __future__ import division # necessary 
import math 

def rms(alist): 
    """ rms([1, 2, 3]) = sqrt(average(1**2 + 2**2 + 3**2)) = 2.16 """ 
    sum_squares = sum([ x**2 for x in alist ]) 
    return math.sqrt(sum_squares/len(alist)) 

... 
print rms([1, 2, 3]) 
Смежные вопросы