我经常看到这个错误,建议用一个给定的和来产生随机数,只是使用一个统一的随机集合,然后对它们进行缩放。 但是如果你这样做的话,真的是一致的随机结果吗?

尝试在两个维度这个简单的测试。 生成一个巨大的随机样本,然后将它们缩放到总和为1.我将使用bsxfun来进行缩放。

xy = rand(10000000,2); xy = bsxfun(@times,xy,1./sum(xy,2)); hist(xy(:,1),100)

如果它们是真正一致的随机数,那么x坐标将是一致的,y坐标也是一样的。 任何价值都可能发生。 实际上,对于总计为1的两点,它们必须位于连接(x,y)平面中两点(0,1),(1,0)的线上。 为了统一点,沿着这条线的任何点必须是相同的可能性。

当我使用缩放解决方案时,显然一致性失败。 这条线上的任何一点都不可能。 我们可以看到同样的事情发生在三维。 在三维图中可以看到,三角形区域中心的点更密集。 这是不一致的反映。

xyz = rand(10000,3); xyz = bsxfun(@times,xyz,1./sum(xyz,2)); plot3(xyz(:,1),xyz(:,2),xyz(:,3),'.') view(70,35) box on grid on

再次,简单的缩放解决方案失败。 它不会在感兴趣的领域产生真正一致的结果。

我们可以做得更好吗? 嗯,是。 二维简单的解决方案是生成一个单一的随机数,指定沿着连接点(0,1)和1,0)的直线距离。

t = rand(10000000,1); xy = t*[0 1] + (1-t)*[1 0]; hist(xy(:,1),100)

可以看出,单位平方的方程x + y = 1所定义的直线上的任何一点现在都可能被选择。 这反映了漂亮,平坦的直方图。

大卫·施瓦茨(David Schwartz)在n维方面提出的排序技巧? 很显然,它在二维情况下是如此,下图表明它在三维情况下是如此。 如果没有深思熟虑的话,我相信它将在这个有n个层面的基本案例中起作用。

n = 10000; uv = [zeros(n,1),sort(rand(n,2),2),ones(n,1)]; xyz = diff(uv,[],2); plot3(xyz(:,1),xyz(:,2),xyz(:,3),'.') box on grid on view(70,35)

也可以从文件交换器Roger Stafford的贡献中下载函数randfixedsum 。 这是一个更一般的解决方案,在单位超立方体中生成真正一致的随机集,并给定固定和。 因此,为了产生位于单位3立方体中的随机点集合,根据约束它们总和为1.25 …

xyz = randfixedsum(3,10000,1.25,0,1)'; plot3(xyz(:,1),xyz(:,2),xyz(:,3),'.') view(70,35) box on grid on

matlab 加随机数,随机数加上100:Matlab相关推荐

  1. matlab数组第1到100,MATLAB数组的排列

    1 取A的第一行到第十行并另外开辟一个矩阵B存储这十行变量 >> A=magic(15); >> B=A(1:10,:) B = 122 139 156 173 190 207 ...

  2. MATLAB中生成随机数方法总结

    好久没用MATLAB了,今天在利用MATLAB进行数据处理时,突然发现自己忘记了该如何产生自己需要的随机数形式,于是又查了一通资料.现对其进行一个简单的总结,供自己和大家以后参考: 1. randi ...

  3. matlab 随机数有效数字,MATLAB中生成随机数方法总结

    好久没用MATLAB了,今天在利用MATLAB进行数据处理时,突然发现自己忘记了该如何产生自己需要的随机数形式,于是又查了一通资料.现对其进行一个简单的总结,供自己和大家以后参考: 1. randi ...

  4. MATLAB中的随机数

    MATLAB中的随机数真的把我搞烦了,索性就系统整理下 randi : 产生均匀分布的伪随机整数 %产生一个1至10之间的随机矩阵,大小为2x5: s1 = randi(10,2,5); rand: ...

  5. matlab卡方分布的随机数,MATLAB产生随机数

    (1)用计算机产生的是"伪随机数".用投色子计数的方法产生真正的随机数 , 但电脑若也这样做 , 将会占用大量内存 ; 用噪声发生器或放射性物质也可产生真正的随机数 , 但不可重复 ...

  6. vba控制matlab,Matlab加VBA在实验室内质量控制中的应用(南京)

    实现实验室内质量控制图的绘制 MATLAB加VB实现实验室内质量控制图的绘制 韩波1 , 孙利1 , 黄勇2 (1.北海市环境监测中心站, 北海536000: 2.北海市环境信息中心, 北海53600 ...

  7. java一个整数加100是完全平方_Java计算一个数加上100是完全平方数,加上168还是完全平方数...

    题目:一个整数,它加上100后是一个完全平方数,加上168又是一个完全平方数,请问该数是多少? 程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足 ...

  8. matlab 确定参数 一钓鱼俱乐部,Matlab常用命令{1}.doc

    如何画三维图形? 考虑一个二元函数,如何用三维图形来表现这个曲面呢? >>[x,y] = meshgrid(-3:1/8:3); 生成网格线 meshgrid (X)=meshgrid(X ...

  9. 线性正切制导 matlab编程实现,数学建模之MATLAB编程

    EverydayOneCat ✖️N 「Sushi shop!」 知识点 1.下载 链接:https://pan.baidu.com/s/1DbfysOOwIoSvt8HQUw0jhw 提取码:75m ...

  10. matlab的上机报告,数理统计和Matlab上机报告.doc

    数理统计和Matlab上机报告.doc 统计分析软件(matlab)实验报告1序号班级姓名学号日期时间地点信计1302张温柔4136309620150706实验楼102指导教师李娜实验名称1. mat ...

最新文章

  1. 模糊测试(fuzz testing)介绍(一)
  2. mysql数据库有几种连接方法_几种常见的数据库连接方法
  3. css hack *html,CSS Hack详解
  4. 【今晚七点半】:白板与开源
  5. 计算机软件不是出租的主要标的时著作权,著作权中出租权的适用对象有哪些?...
  6. set集合 结构体_Redis底层数据结构
  7. phalcon index.php,Phalcon环境搭建与项目开发
  8. python登录验证_Python第一天-----简单登录验证
  9. C++基础——tricks,让人惊艳的那些代码
  10. Memcached总结四:用ava程序连接memcached进行操作
  11. GIS坐标系:epsg 3857 vs 4326
  12. 量子物理史话 第四章 白云深处
  13. 虚拟机配置--网络、MySQL数据库、JDK环境变量
  14. w7无法訪问计算机上硬盘分区,Win7/win10双系统无法打开磁盘分区提示拒绝访问怎么解决...
  15. 表示整数x的绝对值大于5时值为真的c语言表达式是——.,1表示'整数x的绝对值大于5'时值为'真'的C语言表达式是_____...
  16. Android绘图(二)使用 Graphics2D 实现动态效果
  17. webpy中如何返回json格式给前端
  18. 安信可ESP32-CAM摄像头开发demo--广域网远程实时查看视频流
  19. mysql根据班级排序语文成绩_mysql 成绩排序
  20. 抖音浏览量的作用是什么?

热门文章

  1. Java项目部署到云服务器最简单的方法
  2. STC学习:光敏开关
  3. 关于python编程语法_Python编程入门——基础语法详解
  4. 用python编写决策树算法_详细介绍python实现决策树C4.5算法
  5. 请确保dx环境安装正常后进行开播_虎牙直播助手常见问题汇总
  6. 汇编中NEG和NOT的区别(汇编初学者简单笔记)
  7. java中重载构造方法的例程_Java构造函数使用多种方法重载
  8. 接口测试及服务器性能压测,接口测试及服务器性能压测
  9. 自动驾驶 6-3 几何横向控制 - Stanley Geometric Lateral Control - Stanley
  10. 容器技术Docker K8s 4 容器编排技术基础-Kubernetes