学习资料python
多维正态云python
预备知识:
如何获取具有特定均值和方差的正态分布随机数。首先,初始化随机数生成器,以使本示例中的结果具备可重复性。
rng(0,'twister');
基于均值为 500 且标准差为 5 的正态分布创建包含 1000 个随机值的向量。
a = 5;
b = 500;
y = a.*randn(1000,1) + b;
function [xl,yl,xu,yu]=PengHG2018(para)
%para[Hel Enl Ex Enu Heu n]
for q = 1:para(6)
ENNu = randn(1).*para(5) + para(4);
xu(q) = randn(1).*abs(ENNu) + para(3);
yu(q) = exp(-(xu(q)-para(3)).^2/(2.*ENNu.^2));
ENNl = randn(1).*para(1) + para(2);
xl(q) = randn(1).*abs(ENNl) + para(3);
yl(q) = exp(-(xl(q)-para(3)).^2/(2.*ENNl.^2));
end
主函数
%云模型的主函数 非对称云图
clc;
clear all;
close all;
%每幅图生成1500个云滴
C1 = [0, 0, 0, 0.6285, 0.1280];
C3 = [0.0715, 0.4588, 3.2620, 0.3349, 0.0979];
C5 = [0.1280, 0.2444, 5,0.2444, 0.1280];
C7 = [0.0979, 0.3349, 6.7380, 0.4588, 0.0715];
C9 = [0.1280, 0.6285, 10, 0, 0];
n = 1500;
para1 = [C1 n];
[xl1,yl1,xu1,yu1]= PengHG2018(para1);
plot([xl1,xu1],[yl1,yu1],'r.');
xlabel('语言评价分布');
ylabel('确定度');
title(strcat('云模型还原图谱'));
axis([0,10,0,1]);
hold on
para3 = [C3 n];
[xl3,yl3,xu3,yu3]= PengHG2018(para3);
plot([xl3,xu3],[yl3,yu3],'b.');
hold on
para5 = [C5 n];
[xl5,yl5,xu5,yu5]= PengHG2018(para5);
plot([xl5,xu5],[yl5,yu5],'y.');
hold on
para7 = [C7 n];
[xl7,yl7,xu7,yu7]= PengHG2018(para7);
plot([xl7,xu7],[yl7,yu7],'k.');
hold on
para9 = [C9 n];
[xl9,yl9,xu9,yu9]= PengHG2018(para9);
plot([xl9,xu9],[yl9,yu9],'g.');