灰色关联矩阵的matlab实现

%灰色预测优点:操作简单、所需数据量少,一般只要4个数据便可依据灰色序列进行预测了
%灰色模型:了解某些信息又不能完全掌握其“脾性”,用来解决不确定性问题
%关键字: 灰色关联度矩阵
%灰色系统的程序设计

clc;
close;
clear all;
%控制输出结果精度
format short;
%原始数据
x = [];
n1 = size(x,1);%size(x,1)表示返回矩阵x的行数
%数据标准化处理
for i = 1:n1
    x(i,:) = x(i,1);
end
%保存中间变量,将原始数据赋予变量data
data = x;
%分离参考数列(母因素)
consult = data(6:n1,:);
m1 = size(consult,1);
%分离比较数列(子因素)
compare = data(1:5,:);
m2 = size(compare,1);
for i = 1:m1
    for j = 1:m2
        t(j,:) = compare(j,:)-consult(i,:);
    end
    min_min = min(min(abs(t')));
    max_max = max(max(abs(t')));
    %通常分辨率都是取0.5
    resolution = 0.5;
    %计算关联系数
    coefficient = (min_min + resolution*max_max)./(abs(t) + resolution*max_max);
    %计算关联度
    corr_degree = sum(cofficient')/size(cofficient,2);
    r(i,:) = corr_degree;
end

%输出关联度值并绘制柱形图
r;
bar(r,0.90);   %设置相关bar的宽度和控制一个组之间bar的距离。默认宽度是0.8,所以如果你不指定x,这些一个组内的bars有一个比较小的距离。如果宽度是1,则一个组内的bars是相互紧挨着的。
axis tight;%设置坐标轴显示范围为紧凑型
%从左到右依次是.
legend('固定资产投资','工业投资','农业投资','科技投资','交通投资');

%以下程序是为了给x轴添加汉字标签
%其基本原理是先去掉x轴上的固有标签,然后用文本标注x轴
%去掉x轴上的默认标签
set(gca,'XTickLable','');%去掉x轴刻度
%设定x轴刻度的位置,这里有6个母因素
n = 6;
%这里注意:x_range范围如果是[1 n]会导致部分柱形条不能显示出来
%所以范围要缩小一点
x_value = 1:1:n;
x_range = [0.6 n+.4];
%获取当前图形的句柄
set(gca,'XTick',x_value,'XLim', x_range);
%在x轴上标记6个母因素
profits = {'国民收入','工业收入','农业收入','商业收入','交通收入','建筑业收入'};
y_range = ylim;
%用文本标注母因素名称
handle_data = text(x_value,y_range(1)*ones(1,n)+.018,profits(1:1:n));
%把文本的字体设置合适的格式和大小并旋转一定的角度
set(handle_date,'HorizontalAlignment','right','VerticalAlignment','top','Rotation',35,'fontname','Arial','fontsize',10.5);
%y轴标记
ylabel('y');
title('投资对收入的作用');


    
 

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值