matlab将图片变成热图,MATLAB实例:求相关系数、绘制热图并找到强相关对

MATLAB实例:求相关系数、绘制热图并找到强相关对

用MATLAB编程,求给定数据不同维度之间的相关系数,并绘制热图,保存图片,找到强相关的维度对。

1. demo.m

clear

clc

etea=0.8; %阈值

% 加载数据

data_load=dlmread("E:scanplotwine.data");

data=data_load(:,2:14);

[N, D]=size(data);

% 求维度之间的相关系数

rho = corr(data, "type","pearson");

% 绘制热图

string_name={"Alcohol","Malic acid","Ash","Alcalinity of ash","Magnesium","Total phenols","Flavanoids","Nonflavanoid phenols","Proanthocyanins","Color intensity","Hue","Diluted wines","Proline"};

xvalues = string_name;

yvalues = string_name;

h = heatmap(xvalues,yvalues,rho, "FontSize",10, "FontName","Times New Roman");

h.Title = "Correlation Coefficient";

colormap(jet)

saveas(gcf,sprintf("wine相关系数热图.jpg"),"bmp"); %保存图片

% 绝对值

rho=abs(rho);

rho_1=rho.*tril(ones(D,D),-1); %下三角

[row, col]=find(rho_1>etea); %找>etea的两个维度

[Num, ~]=size(row);

% A:存放相关系数>etea的两个维度及相关系数值

A=zeros(Num, 3);

for i=1:Num

A(i,:)=[row(i), col(i), rho_1(row(i), col(i))];

fprintf("强线性相关的两个维度是: 第%d个维度: %s与第%d个维度: %s, 两者的相关系数为:%f

", row(i), string_name{row(i)}, col(i), string_name{col(i)}, rho_1(row(i), col(i)));

end

2. 结果

>> demo

强线性相关的两个维度是: 第7个维度: Flavanoids与第6个维度: Total phenols, 两者的相关系数为:0.864564

36b40cac467def0f5251ab98431082d3.png

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值