Matlab學習報告 20-12-08
阿新 • • 發佈:2020-12-10
技術標籤:matlab
Matlab學習報告 20-12-08
- 散點圖繪製
- 灰色關聯度分析GRA
散點圖繪製
以.txt檔案匯入,數值由空格間隔
這裡是ho2.txt:
1 5 4 16 8
5 43 2 6 8
6 8 4 32 1
90 7 8 7 6
5 9 81 2 3
4 7 34 4 67
% Load the file to the matrix, M :
M = load('ho2.txt')
%此時M為矩陣,可用M(m,n)呼叫第m行n列的元素
表示式 | 函式功能 |
---|---|
A(1) | 將二維矩陣A重組為一維陣列,返回陣列中第一個元素 |
A(: , j) | 返回二維矩陣A中第 j 列 列向量 |
A(: , j : k) | 返回二維矩陣A中第 j 列到第 k列 列向量組成的子矩陣 |
A( i : k , j : m) | 返回二維矩陣A中第 i 行到第 k 行 行向量和 第 j 列到第 m 列 列向量的交集組成的子矩陣 |
plot(M(1:),M(2:),'r.');hold on; % 點 r=紅色
plot(M(1:),M(3:),'g*');hold on; % 星星 g=綠色
plot(M(1:),M(4:),'o');hold on; % 圓圈 預設是藍色
plot(M(1:),M(5:),'mo','MarkerSize',15) % 大的圓圈 m= 紫色
%plot函式繪圖,前為x軸,後為y軸
%hold on使其畫在一張圖內
灰色關聯度分析
用於資料降維處理,尋找關鍵變數組,簡化模型。
第一步:確定分析數列
對於兩個系統之間的因素,其隨時間或不同物件而變化的關聯性大小的量度,稱為關聯度。在系統發展過程中,若兩個因素變化的趨勢具有一致性,即同步變化程度較高,即可謂二者關聯程度較高;反之,則較低。因此,灰色關聯分析方法,是根據因素之間發展趨勢的相似或相異程度,亦即“灰色關聯度”,作為衡量因素間關聯程度的一種方法。
如以ho2.txt第一行數列為參考數列,以後面4行為比較數列,意為比較後四行所代表的四個變數與參考變數的關聯度。
x=M(1: ); %參考佇列
%matlab對引號無要求。
%加引號只代表輸出x(在工作區中顯示)
y=M(2:end,:); %比較佇列
第二步:變數歸一化
由於系統中各因素列中的資料可能因量綱不同,不便於比較或在比較時難以得到正確的結論。因此在進行灰色關聯度分析時,一般都要進行資料的無量綱化處理。
%資料均值化處理,注意應當放在提取佇列之前
M_mean=mean(M,2);
for i = 1:index_num %index_num為行數,可用size函式得到
M(i,:) = M(i,:)/M_mean(i,1);
end
第三步:求解關聯度係數
ρ∈(0,∞),稱為分辨係數。ρ越小,分辨力越大,一般ρ的取值區間為 (0,1),具體取值可視情況而定。當 ρ≤0.5463時,分辨力最好,通常取ρ = 0.5。
第四步,計算關聯度
因為關聯絡數是比較數列與參考數列在各個時刻(即曲線中的各點)的關聯程度值,所以它的數不止一個,而資訊過於分散不便於進行整體性比較。因此有必要將各個時刻(即曲線中的各點)的關聯絡數集中為一個值,即求其平均值,作為比較數列與參考數列間關聯程度的數量表示
其中,r越大,表示此比較變數與參考變數關聯度越大
m2=size(y,1); %求比較數列的個數
for j=1:m2
t(j,:)=y(j,:)-x;
end
mn=min(min(abs(t'))); %求最小差
mx=max(max(abs(t'))); %求最大差
rho=0.5; %分辨係數設定
ksi=(mn+rho*mx)./(abs(t)+rho*mx); %求關聯絡數
r=sum(ksi')/n %求關聯度
[rs,rind]=sort(r,'descend') %對關聯度進行排序
%執行結果的r表為各關聯度,rind表即為關聯度大小排序的結果。