Numpy 类型错误:';模块';对象不能使用调用

Numpy 类型错误:';模块';对象不能使用调用,numpy,python-3.4,Numpy,Python 3.4,错误 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)

错误

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'))
文件“/home/pi/Documents/final.py”,第10行,在
x1=加载(char('neweeg.txt'))
typeError:“模块”对象不可调用

我认为直接的错误是因为您将char()当作函数来使用。这并不清楚您的意图(有一个python内置函数chr()从整数生成字符)

那就不清楚你想做什么了。load()将读取numpy.save()生成的pickle数组,但如果它是文本文件,则numpy.loadtxt()似乎更相关。但是x1将是一个ndarray,所以在接下来的两行中,将其作为函数与x1()一起使用是没有意义的。还有length()len()?rand(4,1)random.randint(1,4)还是numpy.random.randint(1,4)?正如安东所说,你只需要通过修正错误,在文档中查找东西来解决问题


最后,如果您不导入*而是以您认为正在使用的模块的名称作为每个方法的前缀,这将使您和其他人更加清楚。

这是一个100%运行良好的Matlab代码。并尝试将其转换为Python

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

请使用适当的格式,先生,我不明白你在说什么,第8行显示错误先生,请帮我一个忙,我正在做我的最后一年项目,你为什么使用
char('newegg')
?您希望将其转换为
char
type吗?先生,我有一个文本文件neweeg,其中10008个随机no'sinneweeg.txt 1008个数值,我想在x1中分配这个1008值,1-5000值分配给其他变量,5000-10000值分配给其他变量。如果我做错了,请帮助我解决这个问题。。我是新手,我真的不知道如何使用python中的模块,这段代码基本上是从matlab代码转换而来的,在matlab中工作100%很好,x1=np.loadtxt('neweeg.txt')x=np.arange(15001)xx=np.arange(500010001),但是matlab必须是一种边缘语言,如果它能够处理像y[],e[]和j[]这样引入下标变量的话。如果您发布您的matlab工作代码,或者用文字解释您的代码试图做什么,可能会更清楚。一般来说,如果您在numpy中使用python循环,您就会知道您的操作方式是错误的!(但我仍然不知道你想做什么)我已经发布了我的matlab代码,它将帮助你,我需要你的帮助。请
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')