lqssssu 发表于 2020-12-13 00:36

Python跟MATLAB的一些问题~

之前在用MATLAB进行画图,但是MATLAB的代码过于太冗余,所以想换成Python将代码优化一下。

但是Python又有一些地方搞不懂。因为数据是一个73*3的表格,需要分成3列73行进行代码的操作。

想问问有没有啥好的方法。

还想加上窗口,点击提交文件,然后生成图形,但是实在是没有头绪,感谢大佬们的帮助


import sys,os
import tkinter
from tkinter import *
from matplotlib.pyplot import plot, draw, show
import matplotlib.pyplot as plt
import numpy as np


def xlsRead_CH0(file):
    data0 = xlrd.open_workbook(file)
    table0 = data0.sheets()
    nrow0 = table0.nrows
    for i in range(nrow0):
      if i == 0:
            continue
      print(table0.row_values(i))

def plot_CH0():
    plt.figure(num=1)
    plt.polar()
    plt.show()

if __name__ == '__main__':
    file_path = r"RtisLup.xlsx"
    xlsRead_CH0(file_path)

ps214 发表于 2020-12-13 01:30

本帖最后由 ps214 于 2020-12-13 01:32 编辑

因为数据是一个73*3的表格,需要分成3列73行进行代码的操作。

矩阵变换的话, 看看 numpy 和 pandas 这俩库吧, 专门用来处理矩阵数据的

好像是用 pandas 的 dataframe , 太久没用记不清了, 搜一下很简单

xiuji 发表于 2020-12-13 08:42

用python的pandas库处理多行多列的数据会很方便,pandas最适合你的这种情况

lqssssu 发表于 2020-12-14 13:48

我又来了,按照你们的思路利用了pandas,但是我又把代码写冗余了。

想整一个短而精湛的代码代替这一堆冗余的代码。

                                                         
def OTA_CH0(file):                                       
    CH0 = pd.read_excel(file, sheet_name="CH0")         
    theta = CH0['Azimuth'].values                        
    rho = CH0['Elevation'].values                        
    total = CH0['Total'].values                        
                                                         
    # theta                                             
    theta_0 = theta[:12]                                 
    theta_30 = theta                              
    theta_60 = theta                              
    theta_90 = theta                              
    theta_120 = theta                           
    theta_150 = theta                           
                                                         
    # rho                                                
    rho_0 = rho[:12]                                    
    rho_30 = rho                                 
    rho_60 = rho                                 
    rho_90 = rho                                 
    rho_120 = rho                                 
    rho_150 = rho                                 
                                                         
    # total                                             
    total_0 = total[:12]                                 
    total_30 = total                              
    total_60 = total                              
    total_90 = total                              
    total_120 = total                           
    total_150 = total                           
                                                         
页: [1]
查看完整版本: Python跟MATLAB的一些问题~