MATLAB小技巧(17)矩阵分析--灰色关联度计算
前言
MATLAB进行图像处理相关的学习是非常友好的,可以从零开始,对基础的图像处理都已经有了封装好的许多可直接调用的函数,这个系列文章的话主要就是介绍一些大家在MATLAB中常用一些概念函数进行例程演示!
灰色关联度分析法(Grey Relational Analysis)是灰色系统分析方法的一种。是根据因素之间发展趋势的相似或相异程度,亦即“灰色关联度”,作为衡量因素间关联程度的一种方法。
对矩阵的灰色关联度进行计算,步骤如下:
第一步:求矩阵均值;
第二步:求各序列的初值像;
第三步:求差序列;
第四步:求两极差;
第五步:求关联系数;
第六步:求关联度
搜寻资料的时候遇到的这个示例,这里分享给大家,MATLAB版本为MATLAB2015b。
一. MATLAB仿真
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%功能:矩阵分析--灰色关联度计算
%环境:Win7,Matlab2015b
%Modi: C.S
%时间:2022-06-25
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 清空环境变量
clear all
clc
tic
m=7; %子序列
k=3;%序列长度
X0=[];%差序列矩阵
R0=[];%关联系数矩阵
xindata=[0.000155101 1 0.5
8.54803E-05 1 0.5
5.28503E-05 1 0.5
9.5186E-05 1 0.5
0.000131515 1 0.5
0.00012995 1 0.5
0.000155101 1 0.5
0.000147684 1 0.5]';
mean1=mean(xindata,2);
% 第二步:求各序列的初值像
for i=1:k
x1(i,:)=xindata(i,:)./mean1(i,1);
end
%x2=x1.^2;
%s=sqrt(sum(x2,2)/(k-1))
%for i=1:m+1
%x2(i,:)=(x(i,:)-mean1(i,1))/s(i,1); %均值化数据
%end
x1=x1';
x0=x1(1,:);
X=x1(2:m+1,:);
% 第三步:求差序列
for i=1:m
for ii=1:k
X0(i,ii)=abs(x0(ii)-X(i,ii));
end
end
% 第四步:求两极差
Max=max(max(X0));
Min=min(min(X0));
% 第五步:求关联系数
for i=1:m
for ii=1:k
R0(i,ii)=(Min+0.5*Max)/(Min+0.5*Max+X0(i,ii));
end
end
% 第六步:求关联度
r=sum(R0)/k
% 第七步:显示结果
disp('关联度依次为:')
disp(r)
disp('计算灰色关联度源程序');
toc
二. 仿真结果
r =
1.4817 2.3333 2.3333
关联度依次为:
1.4817 2.3333 2.3333
计算灰色关联度源程序
时间已过 0.024738 秒。
三. 小结
矩阵灰色关联度计算的示例,后期可能会用到,这里做个笔记。每天学一个MATLAB小知识,大家一起来学习进步阿!