2015-12-08 3 views
0
from __future__ import division 
from numpy import * 
import matplotlib as plt 
import os 

clear = lambda: os.system('cls') 
clear() # clear screen 

meu=1e-05 # exponential form 
x1=load(char('neweeg.txt')) 
x=x1(arange(1,5000)) 
xx=x1(arange(5001,10000)) 
N=length(x) 
X=zeros(4,1) 
w=rand(4,1) 

for n in arange(1,N).reshape(-1): 
    X[arange(2,end())]=X(arange(1,end() - 1)) 
    X[1]=x(n) 
    y[n]=w.T * X 
    e[n]=x(n) - y(n) 
    w=w + meu * e(n) * X 
    J[n]=e(n) * e(n) 

MSE=mean(J,1) 

plt.plot(10 * log10(MSE)) 
plt.figure 
plt.plot(x) 
hold(char('on')) 
plt.plot(y,char('r')) 
plt.figure 
plot(xx - (e).T) 
hold(char('on')) 
plt.plot(xx,char('r')) 

ERRORTypeError: «модуль» объект не вызываемая с помощью

file "/home/pi/Documents/final.py", line 10, in <module> 
x1=load(char('neweeg.txt')) 
typeError: 'module' object is not callable 
+0

отформатируйте ваш код правильно, используя [уценки] (http://stackoverflow.com/help/formatting) –

+0

сэр я не понимаю, что you'r говоря, в строке 8 он показывает ошибку –

+0

сэр любезно сделайте мне одолжение, я работаю над моим проектом в прошлом году, –

ответ

0

Я думаю, что непосредственная ошибка в том, что вы используете символ(), как если бы это была функция. Непонятно, что вы намереваетесь этим (есть питон, встроенный в функцию chr() для создания символов из целых чисел)

Непонятно, что вы пытаетесь сделать. numpy.load() будет читать маринованный массив, созданный numpy.save(), но если это текстовый файл, то numpy.loadtxt() будет казаться более актуальным. Но тогда x1 будет ndarray, поэтому нет смысла использовать его как функцию с x1() в следующих двух строках. Также длина() len()? rand (4,1) random.randint (1,4) или numpy.random.randint (1,4)? Поскольку Антон говорит, что вам просто нужно проработать ошибки исправления, глядя в документы.

И, наконец, это сделает многое более понятным для вас и других, если вы не импортируете *, но префикс каждого метода по имени модуля, который, по вашему мнению, вы используете.

+0

В neweeg.txt 1008 числовые значения, я хочу назначить это значение 1008 в значениях x1 и 1-5000 для другой переменной и 5000-10000 значений присваивать другим. если я сделаю неправильную помощь plz, то разрешите это. im new i realy не знаю, как использовать модули в python, этот код базово преобразован из кода matlab, в matlab работает на 100% отлично, –

+0

x1 = np.loadtxt ('neweeg .txt ') x = np.arange (1, 5001) xx = np.arange (5000, 10001). Однако матрица должна быть маргинальным языком, если она может справиться с введением индексированных переменных, таких как y [], e [] и Ж []. Может быть, было бы лучше, если бы вы разместили свой рабочий код Matlab или объяснили на словах, что ваш код пытается сделать. Вообще говоря, если вы используете цикл python с numpy, вы знаете, что делаете неправильно! (Но я до сих пор не знаю, что вы пытаетесь сделать) – paddyg

+0

Я опубликовал свой код в Matlab, это поможет вам, мне нужна ваша помощь. плз –

0

Это код Matlab работает на 100% хорошо. и пытается преобразовать его в Python

clc; 
    close all; 
    clear all; 


    meu = 0.00001; 
    x1=load('neweeg.txt'); 
    x = x1(1:5000); 
    xx =x1 (5001:10000); 
    N = length(x); 

    X = zeros(4,1); 
    w = rand(4,1); 

    for n = 1:N 

     X(2:end) = X(1:end-1); 
     X(1) = x(n); 

     y(n) = w'*X; 
     e(n) = x(n) - y(n); 
     w = w + meu*e(n)*X; 
     J(n) = e(n)*e(n); 
    end 

    MSE = mean(J,1); 
    plot(10*log10(MSE)) 
    title('MSE') 

    figure 
    plot(x);hold on; plot(y,'r') 
    title('X and Y') 

    figure; 
    plot(xx-(e)') 
    hold on 
    plot(xx,'r') 
    title('XX-(e) or XX') 
Смежные вопросы