Matlab热点图实现

描述

代码还没有细看,搜的别人的,而且忘了是谁的了哈哈
用matlab看看还行,项目实施还是得用其他语言

copy在这里,以防丢失

代码

clc;
clear;
t=[0:0.01:1].^1.0;
x=0.5*(t.^2).*cos(5*pi*t.^2)+0.5;
y=0.5*(t.^2).*sin(5*pi*t.^2)+0.5;

%构建绘图网格
[X,Y]=meshgrid(0:0.001:1,0:0.001:1);
sigma=0.05;%影响半径
%初始化
Z=zeros(size(X));
Zsum=Z;
%逐个点叠加
for j=1:length(x)
    Z=Gauss2D(X,Y,sigma,x(j),y(j));
    Zsum=Heatsum(Zsum,Z);
end
%绘图
hold on
pcolor(X,Y,Zsum);shading interp
plot(x,y,'o')
hold off
axis off

function Z=Gauss2D(X,Y,sigma,a,b)
%XY是网格坐标
%sigma是高斯分布的宽度
%ab是中心点坐标
    Z=0.5*exp(-((X-a).^2+(Y-b).^2)./sigma.^2);
end

function B=Heatsum(A1,A2)
%两个点之间叠加
B=1-(1-A1).*(1-A2);
end

运行结果
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值