在while循环中读取数据

2024-09-30 14:36:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我不确定我是否遗漏了一些我在Python还是新手的东西,但是我在一个文件夹里读了很多Matlab文件。在每个matlab文件中,有多个数组,我可以对每个数组做一些事情,比如绘图,求平均值,最大最小值等。我的代码工作完美,读取数据正确。现在,我想添加一个while循环,这样它可以一直运行,直到我告诉它停止,这意味着让用户排队继续选择需要读取数据的文件夹。但是,当我第二次运行它时,它会给我这个错误TypeError: 'list' object is not callable

如果我错了,请纠正我,但我觉得代码所做的是将下一组数据添加到程序的整体数据中。这就是为什么它在maxGF=max(GainF)这一行时给我一个错误。因为这样它就变成了一个数组…它不能取最大值。在

当我从每个matlabfile加载数据时,我是这样做的:

Files=[] #list of files

for s in os.listdir(filename):
    Files.append(scipy.io.loadmat(filename+s))

for filenumber in range(0,length):

    #Gets information from MATLAB file and inserts it into array
    results[filenumber]=Files[filenumber]['results']   

    #Paramaters within MATLAB
    Gain_loading[filenumber]=results[filenumber]['PowerDomain'][0,0]['Gain'][0,0] #gets length of data within data array
    length_of_data_array=len(Gain_loading[filenumber])
    Gain[filenumber]=np.reshape(results[filenumber]['PowerDomain'][0,0]['Gain'][0,0],length_of_data_array) #reshapes for graphing purposes
    PL_f0_dBm[filenumber]=np.reshape(results[filenumber]['PowerDomain'][0,0]['PL_f0_dBm'][0,0],length_of_data_array)
    Pavs_dBm[filenumber]=np.reshape(results[filenumber]['PowerDomain'][0,0]['Pavs_dBm'][0,0],length_of_data_array)
    PL_f0[filenumber]=np.reshape(results[filenumber]['PowerDomain'][0,0]['PL_f0'][0,0],length_of_data_array)
    PL_2f0_dBm[filenumber]=np.reshape(results[filenumber]['PowerDomain'][0,0]['PL_2f0_dBm'][0,0],length_of_data_array)
    CarrierFrequency[filenumber]=np.reshape(results[filenumber]['MeasurementParameters'][0,0]['CarrierFrequency'][0,0],length_of_data_array)
    Gamma_In[filenumber]=np.reshape(abs(results[filenumber]['PowerDomain'][0,0]['Gin_f0'][0,0]),length_of_data_array)
    Delta[filenumber]=PL_2f0_dBm[filenumber]-PL_f0_dBm[filenumber]

当我开始处理下面的数据时,它会工作,并且会显示正确的数据,直到我运行max(GainF)命令。在

^{pr2}$

我读过其他线程说要使用seek(0)函数。我试过了文件.seek(0)因为这是所有my of data最初保存的地方,但是当我运行它时,它会给我相同的错误:AttributeError: 'list' object has no attribute 'seek'

如何重置所有数据?帮助

更新: 我尝试了下面的代码

for name in dir():
       if not name.startswith('_'):
        del globals()[name]

它的工作方式是我想要的…或者我想是这样。当我看到程序输出的PDF文件时,我得到了扭曲的图形。看起来上一个程序的轴仍然在pdf中。不仅如此,当我运行它4-5次时,间距越来越大,图形之间的距离也越来越远。如何修复此错误?在

distorted graphs


Tags: 文件of数据datanparraylengthresults