灰色關聯分析方法是按照因素之間發展趨勢的相似或相異程度(灰色關聯度),衡量因素間關聯程度的一種方法,可以用於定量分析因素的相關程度,也可以作為一種評價方法。之前介紹了基於MATLAB的guide制作的灰色關聯分析法GUI計算界面,但是隨著MATLAB版本的更新,之後的版本不再支持guide制作的GUI界面,因此我基於MATLAB App Designer將灰色關聯分析法修改成App,這樣可以相容2016之後的版本,也不受最新版本的限制。
基於MATLAB的guide將灰色關聯分析法制作成App。
App界面如下:
點選選擇灰色關聯度分析因素相關程式——點選匯入數據——輸入分辨率、以及相應的比較因素指標的下標——點選開始計算——即可獲得比較指標和參考指標之間的灰色關聯度,並生成對不同物件的比較指標的灰色關聯度計算結果圖。
點選選擇灰色關聯度發綜合評價——點選匯入數據——輸入分辨率、——點選開始計算——即對評價物件的評分。需要完整App安裝包的,可以進行打賞後截圖(60元及以上),點選微信公眾號雲龍派的「聯系掌門」按鍵進行聯系,或者在公眾號內回復截圖,幾小時內會回復。App編程不易,還請見諒!
1.基於MATLAB的灰色關聯分析法計算App
下面是購買轎車的一個決策矩陣,給出了四個方案供我們進行選擇,每個方案中均有相同的六個內容(假設均為越大越優型指標),我們使用灰色關聯度法對費用作為參考指標,分析油耗、功率、安全性、維護性、操作性等因素與費用的關聯度,同時對四個方案進行評價。
車型 | 油耗 | 功率 | 費用 | 安全性 | 維護性 | 操作性 |
本田 | 5 | 1.4 | 6 | 3 | 5 | 7 |
奧迪 | 9 | 2 | 30 | 7 | 5 | 9 |
桑塔納 | 8 | 1.8 | 11 | 5 | 7 | 5 |
別克 | 12 | 2.5 | 18 | 7 | 5 | 5 |
Step1: 點選HuisheguanlianApp.mlappinstall檔,在MATLAB中雙擊安裝APP,點選安裝到我的APP。
Step2: 在APP 選單欄中找到我的app中的HuisheguanlianApp,雙擊執行出App主界面。
Step3: 執行主程式,點選灰色關聯分析因素相關程度,進入灰色關聯分析因素相關程度計算App。
Step4: 點選匯入數據,確定載入數據完成,並輸入分辨系數a和參考指標下標、其他指標下標向量。
Step5: 點選開始計算,計算出其他指標和參考指標之間的灰色關聯度,以及對評價物件的指標關聯度結果圖。
Step6: 點選開始關閉,回到主界面,點選灰色關聯法綜合評價。
Step7: 同樣的方式載入數據,並輸入分辨系數a,點選開始計算,即可獲得對評價物件的評分。
Step8: 點選關閉,可以回到主界面。
2.App部份程式如下
classdef huiseguanlianApp < matlab.apps.AppBase% Properties that correspond to app componentsproperties (Access = public)AppUIFigure matlab.ui.FigureTabGroup matlab.ui.container.TabGroupMainTab matlab.ui.container.TabAppPanel matlab.ui.container.PanelButton_3 matlab.ui.control.ButtonButton_2 matlab.ui.control.ButtonButton matlab.ui.control.ButtonhuiseguanlianGUI1Tab matlab.ui.container.TabAppPanel_2 matlab.ui.container.PanelPanel_3 matlab.ui.container.PanelLabel_2 matlab.ui.control.LabelLabel matlab.ui.control.LabelUITable2 matlab.ui.control.TableUITable matlab.ui.control.TableUIAxes matlab.ui.control.UIAxesPanel_2 matlab.ui.container.PanelButton_7 matlab.ui.control.ButtonButton_6 matlab.ui.control.ButtonButton_5 matlab.ui.control.ButtonPanel matlab.ui.container.PanelEditField_2 matlab.ui.control.EditFieldLabel_6 matlab.ui.control.LabelEditField matlab.ui.control.NumericEditFieldEditFieldLabel matlab.ui.control.LabelaEditField matlab.ui.control.NumericEditFieldaEditFieldLabel matlab.ui.control.LabelButton_4 matlab.ui.control.ButtonhuiseguanlianGUI2Tab matlab.ui.container.TabAppPanel_3 matlab.ui.container.PanelPanel_6 matlab.ui.container.PanelLabel_5 matlab.ui.control.LabelLabel_4 matlab.ui.control.LabelUITable4 matlab.ui.control.TableUITable3 matlab.ui.control.TablePanel_5 matlab.ui.container.PanelButton_11 matlab.ui.control.ButtonButton_10 matlab.ui.control.ButtonButton_9 matlab.ui.control.ButtonPanel_4 matlab.ui.container.PanelaEditField_2 matlab.ui.control.NumericEditFieldaEditField_2Label matlab.ui.control.LabelButton_8 matlab.ui.control.Buttonend% Callbacks that handle component eventsmethods (Access = private)% Button pushed function: Button_3function Button_3Pushed(app, event)closereq;end% Button pushed function: Buttonfunction ButtonPushed(app, event)app.TabGroup.SelectedTab = app.huiseguanlianGUI1Tab;end% Button pushed function: Button_2function Button_2Pushed(app, event)app.TabGroup.SelectedTab = app.huiseguanlianGUI2Tab;end% Button pushed function: Button_7function Button_7Pushed(app, event)app.TabGroup.SelectedTab = app.MainTab;end% Button pushed function: Button_11function Button_11Pushed(app, event)app.TabGroup.SelectedTab = app.MainTab;end
本文內容來源於網路,僅供參考學習,如內容、圖片有任何版權問題,請聯系處理,24小時內刪除。
作 者 | 郭誌龍