0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Matlab生成任意分布数据实例演示

8XCt_sim_ol 来源:仿真秀App 作者:过冷水 2022-04-27 14:46 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一、写在文前

在实际工作中经常会遇到类似概率分布的问题。概率问题经常会涉及到随机数分布问题,过冷水就遇到了如何生成满足如下分布数据的问题。

dedf7a5c-c5de-11ec-bce3-dac502259ad0.png

数据范围在2~20之间,但是生成的数据要满足如图所示的概率密度函数,在一般问题中我们经常遇到的生成平均数据使用rand()函数就可以生成0~1区间的随机数据然后对数据进行处理就可以得到满足任意区间的数据,生成满足正态分布的随机也有现成函数randn()函数可调用,如图所示的问题 how do?,本期过冷水就详细的给大家讲一讲如何Matlab生成满足任意概率密度的分布函数。二、均匀分布matlab的rand指令可以帮助我们生成0-1均匀分布的数据,这样,如果我们想要[a,b]的分布数据,只需要a+(b-a)*rand就可以。需要注意的是rand函数有其内置的平均值和标准差

A=rand(1000000,1);muA=mean(A)sigmaA = std(A)muA =0.5000sigmaA =0.2887

如果想要生成指定均值和方差的随机数该如何实现?其实在已知均匀分布的期望和方差条件下是可以反求均匀分布的区间的。均匀分布的期望和方差和随机数区间存在以下关系

def080ea-c5de-11ec-bce3-dac502259ad0.png

如果想生成均值E=0;S=1的随机数,可以利用上述公式反推出df01d2d2-c5de-11ec-bce3-dac502259ad0.png

B=2*sqrt(3)*rand(10000000,1)-sqrt(3);muB=mean(B)sigmaB = std(B)muB =3.8898e-04sigmaB =1.0000

均值和方差满足预期,掌握了均匀分数数据生成后,可以做生成在约束条件的下均匀分布,在二维空间绘制半径为r的圆内均匀分布数据点

df116e68-c5de-11ec-bce3-dac502259ad0.png

figure1 = figure;blackboard=imread('E:Picturelackboard.jpg'); colormap(gray);axes1 =axes('Parent',figure1,'units','normalized','position',[0 0 1 1]);uistack(axes1,'down')image(blackboard,'Parent',axes1,'CDataMapping','scaled')set(axes1,'handlevisibility','off','visible','off');axes2 = axes('Parent',figure1);hold(axes2,'on');plot(x,y,'MarkerFaceColor',[1 00],'Marker','o','LineStyle','none','Color',[1 0 0]);box(axes2,'on');axis(axes2,'equal');axis(axes2,'off');hold(axes2,'off');set(axes2,'FontName','Times NewRoman','FontSize',12,'FontWeight','bold','LineWidth',3,'Color','none');set(axes2,'Color','none','LineWidth',6,'TickLength',[0.010.005],'XColor',[1 0 1],'YColor',[1 0 1],'ZColor',[1 0 1]);同理可绘制半径为r的三维球内均匀分布数据点angle1=rand(1,1000)*2*pi;angle2=acos(rand(1,1000)*2-1);r=power(rand(1,1000),1/3);x=r.*cos(angle1).*sin(angle2);y=r.*sin(angle1).*sin(angle2);z=r.*cos(angle2); figure1 = figure;colormap(gray);axes1 = axes('Parent',figure1,'units','normalized','position',[00 1 1]);uistack(axes1,'down')image(blackboard,'Parent',axes1,'CDataMapping','scaled')set(axes1,'handlevisibility','off','visible','off');axes2 = axes('Parent',figure1); hold(axes2,'on');plot3(x,y,z,'MarkerFaceColor',[10 0],'Marker','o','LineStyle','none','Color',[1 0 0]);view( axes2,[15 30])box(axes2,'on');axis(axes2,'square');hold(axes2,'off');box(axes2,'on')set(axes2,'Color','none','LineWidth',6,'TickLength',[0.010.005],'XColor',[1 0 1],'YColor',[1 0 1],'ZColor',[1 0 1]);

df3e8f92-c5de-11ec-bce3-dac502259ad0.png

Interesting!在指定范围生成数据是非常实用的技能,其实如果能够构造出合适的约束条件,图形将会更加多样化。

三、正态分布

上述案例是给出了约束条件下的均匀分布,那么如何给出在约束条件下的非均匀分布?正态分布是非均匀分布中具有代表性的案例,正态分布实际可以直接调用randn()函数,为了比较清楚看正态分布生成随机数的特点,

我们以二维空间球体为案例来看一下正态分布数据。

angle=rand(1,1000)*2*pi;%(0,2*pi)之间均匀分布数据点r=sqrt(normrnd(0.3,0.13,[1,1000]));%(0,1)之间r^2均匀分布数据点x=r.*cos(angle);y=r.*sin(angle);figure1 = figure;axes1 = axes('Parent',figure1);hold(axes1,'on');plot(x,y,'MarkerFaceColor',[1 00],'Marker','o','LineStyle','none','Color',[1 0 0]);box(axes1,'on');axis(axes1,'square');hold(axes1,'off');set(axes1,'FontName','Times NewRoman','FontSize',12,'FontWeight','bold','LineWidth',3);

df6bc4c6-c5de-11ec-bce3-dac502259ad0.png

从图像上我们生成了一圆层厚度不一致的随机数,已经实现了满足约束条件下的非随机分布只要在往前走一步看如何生成特地的非随机分布

四、任意随机分布数据生成

可以采用MonteCarlo 方法采用随机约束的方法来生成随机数。

1:选定生成数据范围[a,b],并在此范围生成服从均匀分布数据xi;

2:生成服从均匀分布的数据y.y的取值范围为概率密度分布范围;

3:若y < f ( x )保留x,否则舍去。保留的x即为生成的数据,否则舍去。这一步就是对利用Y值对x进行甄选

我们来实践一下

fun=@(x)(0.2089.*exp(-((x-9.985)./0.7535).^2)+ 0.*exp(-((x+1.593)./0.0846).^2)+0.1223.*exp(-((x-3.874)./0.585).^2)-0.1669.*exp(-((x+0.1669)./0.6609).^2)-0.02173.*exp(-((x-9.238)./0.5248).^2)-0.09805.*exp(-((x-8.219)./0.9768).^2)+0.1764.*exp(-((x-7.735)./1.995).^2) +0.07335.*exp(-((x-11.83)./2.733).^2))xmin=2.6;xmax=20;num=2000; %数据数量n=1;data1=zeros(1,num);whilen

df9125b8-c5de-11ec-bce3-dac502259ad0.png

根据上文思路写出的代码生成数据基本满足一开始的分布特征,这样就实现了自定义分布数据。可以利用自定义函数生成数据点特殊的分布函数,我们给出如下分布特征的密度函数

x=linspace(0,1,100);y =(2*x/0.3).*exp(-4*x/0.5);figureplot(x,y)figure1 = figure;axes1 = axes('Parent',figure1);hold(axes1,'on');plot(x,y,'LineWidth',3);ylabel('ρ(x)');xlabel('x');box(axes1,'on');hold(axes1,'off');set(axes1,'FontName','Times New Roman','FontSize',12,'FontWeight','bold','LineWidth',3);

dfa8b94e-c5de-11ec-bce3-dac502259ad0.png

将这样的一个分布应用在二维圆的绘制上

fun=@(x)(2*x/0.3).*exp(-4*x/0.5);xmin=0;xmax=1;num=2000; %数据数量n=1;data1=zeros(1,num);while n

我们得到和正态分布约束条件下的图像有相反的分布趋势,中间数据密集靠近外环的数据点较少,这样的一种分布在实际情况中就是有点像密度的非均匀变化,我们我们将生成的数据赋予其物理意义,就成功的将统计统计上的非均匀分布实实在在用在表述物质性质变化上了。很有实际意义。有需要的读者可自主尝试应用,本期过冷水就给大家分享上述内容。

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • matlab
    +关注

    关注

    189

    文章

    3029

    浏览量

    239212
  • 数据
    +关注

    关注

    8

    文章

    7349

    浏览量

    95025
  • 函数
    +关注

    关注

    3

    文章

    4422

    浏览量

    67851

原文标题:过冷水:Matlab生成任意分布数据实例演示

文章出处:【微信号:sim_ol,微信公众号:模拟在线】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何利用SPI数据实时反馈调整锡膏印刷参数?

    利用SPI(锡膏检测系统)数据实时反馈调整锡膏印刷参数,可通过构建“检测-分析-调整”闭环系统实现,其核心在于以SPI的三维测量数据为基准,结合工艺优化算法动态修正印刷机参数,具体实施路径如下:
    的头像 发表于 04-15 09:08 403次阅读

    JCMsuite应用:空心光子晶体光纤

    Matlab循环允许在位移位置或修改形状生成多个对象。关于该机制的完整描述可以在Matlab®Interface中找到,并且超出了本例的范围,本例仅用于演示嵌入式脚本的能力。这个例子
    发表于 04-15 08:09

    2022全新版!Java分布式架构设计与开发实战(完结)

    历史数据;一致性哈希则在节点增减时最小化数据迁移量,通过虚拟节点技术实现负载均衡,特别适合动态扩展的分布式集群。 全局唯一ID生成是分库分表必须解决的基础问题。传统
    发表于 03-30 15:20

    ORAN wireless-xorif硬件演示

    GitHub 上的 ORAN 硬件工程旨在演示 ZCU102 或 ZCU111 评估板上的不同用例。本篇博文会为您演示如何生成设计,以及在评估板启动后如何使用 API 来配置 CC 设置。
    的头像 发表于 03-14 11:16 1932次阅读
    ORAN wireless-xorif硬件<b class='flag-5'>演示</b>

    Oracle数据库ASM实例无法挂载的数据恢复案例

    一个Oracle数据库故障表现为ASM磁盘组掉线,ASM实例无法挂载(mount)。数据库管理员自行进行简单修复,未能成功,随后联系北亚数据恢复中心恢复
    的头像 发表于 02-24 15:19 206次阅读
    Oracle<b class='flag-5'>数据</b>库ASM<b class='flag-5'>实例</b>无法挂载的<b class='flag-5'>数据</b>恢复案例

    函数信号发生器和任意波形信号发生器区别详解

    任意波形发生器利用事先存储的数字数据生成这些波形,这些数字数据描述了信号不断变化的电压。 通常情况下,任意波形发生器产生的是经过编译的
    的头像 发表于 02-09 16:24 385次阅读
    函数信号发生器和<b class='flag-5'>任意</b>波形信号发生器区别详解

    如何将Primus生成的波形文件导入MATLAB

    VCD 文件及其查看器,如 GTKWave,擅长记录和展示波形,而 MATLAB 擅长对复杂数据进行计算、分析和可视化。在项目设计开发阶段,有时候,我们需要将 EDA 工具生成的波形数据
    的头像 发表于 12-23 14:22 1145次阅读

    Spectrum 推出全新多通道任意波形发生器,支持GHz级信号生成

    Spectrum仪器推出新款旗舰级任意波形发生器,最高可提供6通道10GS/s或12通道5GS/s的输出速度。新型DN6.63x系列AWG隶属于公司旗下Netbox系列,可通过以太网从PC或网络控制
    的头像 发表于 12-11 11:08 533次阅读
    Spectrum 推出全新多通道<b class='flag-5'>任意</b>波形发生器,支持GHz级信号<b class='flag-5'>生成</b>

    Spectrum推出全新多通道任意波形发生器,支持GHz级信号生成

    Spectrum 仪器推出新款旗舰级任意波形发生器,最高可提供6通道10 GS/s或12通道5 GS/s的输出速度。新型DN6.63x系列AWG隶属于公司旗下Netbox系列,可通过以太网从PC或
    的头像 发表于 12-03 16:17 938次阅读
    Spectrum推出全新多通道<b class='flag-5'>任意</b>波形发生器,支持GHz级信号<b class='flag-5'>生成</b>

    全新旗舰任意波形发生器可生成10 GS/s采样率和2.5 GHz带宽的波形

    全新旗舰任意波形发生器可生成10 GS/s采样率 和2.5 GHz带宽的波形 Specrum仪器推出PCIe旗舰系列 任意波形发生器卡 中国北京,2024年10月23日讯—— Spectrum仪器
    的头像 发表于 09-19 14:54 903次阅读
    全新旗舰<b class='flag-5'>任意</b>波形发生器可<b class='flag-5'>生成</b>10 GS/s采样率和2.5 GHz带宽的波形

    淘宝/天猫:利用销售数据API生成区域热力图,优化仓储布局

    ​  在电商运营中,仓储布局直接影响物流效率和客户满意度。淘宝/天猫作为领先平台,通过销售数据API获取区域销售信息,生成热力图来可视化需求分布,从而科学优化仓储策略。本文将逐步解析这一流程,帮助
    的头像 发表于 09-18 14:20 808次阅读
    淘宝/天猫:利用销售<b class='flag-5'>数据</b>API<b class='flag-5'>生成</b>区域热力图,优化仓储布局

    OptiSystem应用:用MATLAB组件实现振幅调制

    本案例展示了在OptiSystem中调用MATLAB代码实现振幅调制。 一、建模目标 案例中,我们生成两束功率为0dBm,频率分别为192.7THz、191THz的载波,合束之后经过自定义脉冲的调制
    发表于 06-13 08:46

    普源示波器如何连接MATLAB实现数据采集与分析

    普源示波器(Rigol)作为国内知名的测试测量仪器品牌,广泛应用于电子工程、科研实验、教学等领域。为了进一步扩展其功能,用户常需将示波器与MATLAB数据分析平台连接,实现自动化测试、实时信号处理
    的头像 发表于 05-29 09:34 1394次阅读

    Spectrum仪器推出通过以太网控制生成宽带信号的任意波形发生器

    波形发生器(AWG),其输出速率高达10 GS/s,分辨率为16位。新产品采用以太网连接技术,可通过电脑、笔记本电脑以及企业网络直接控制。此次发布的新产品主要服务于自动化和远程测试领域,尤其适用于直流至2.5GHz宽带的信号生成。 产品视频链接 新款任意波形发生器(AWG
    的头像 发表于 05-14 14:29 802次阅读
    Spectrum仪器推出通过以太网控制<b class='flag-5'>生成</b>宽带信号的<b class='flag-5'>任意</b>波形发生器

    基于 FPGA 的任意波形发生器+低通滤波器系统设计

    Port ROM,Port A Options 栏中的位宽为8,位深为256,最后在Other Options中,选择加载本地文件选中MATLAB已经生成的正弦波、方波、锯齿波、三角波的COE数据
    发表于 05-07 15:34