def Open_File(self): # 打开文件对话框并获取文件名, 只允许打开.txt文件 filename = QFileDialog.getOpenFileName(self, '选取文本文件', "./", "Text Files (*.txt)")[0] if filename != '': # 若获取的文件名不为空则执行读取操作 data = fo.Read2Array(filename, False)[0] # 将数据文件中内容以保留第一行的形式读取为矩阵 self.data = fo.Read2Array(filename, True)[0] # 将数据文件中内容以不保留第一行的形式读取为全局数据矩阵 self.pendingData = fo.Array2Str(data) # 将转换为字符串格式的矩阵数据保存进预处理变量 data = fo.Array2Str(data) # 将矩阵转换为字符串格式 self.Data.setPlainText(data) # 显示矩阵
def Martix_Operation(self): # 执行矩阵运算前判断是否已读入数据文件 if self.data is None: self.Data.setText('请先导入文件') return False result = '' # 定义结果变量 # 建立模糊聚类矩阵对象 dist = self.Choose_Dist() operation = self.Choose_Operation() self.fcm = fc.Fuzzy_Clustering(self.data, dist, operation) # 判断是否显示并保存中间过程 if self.Process.isChecked(): result += fo.Proset2Str(self.fcm.proSet) # 对结果变量赋值并显示 result += '等价模糊矩阵:\n' + fo.Array2Str(self.fcm.efMatrix) self.Fmatrix.setPlainText(result) self.efMatrix = result # 将结果写进全局等价模糊矩阵变量 # 绘制散点图 self.figure.plotScatter(self.fcm.CutSet_Iteration()) # 执行散点图绘制函数 self.gridlayout = QGridLayout(self.MatPlot) # 重定义MatPlot部件所在位置 self.gridlayout.addWidget(self.figure, 0, 1) # 将重定义的位置替换为散点图