石鑫华视觉论坛

 找回密码
 注册会员
查看: 1439|回复: 0

[原创] LabVIEW Vision图像处理开发宝典-第三章 功能函数与主程序-第一节 功能函数与模块-1.3 Sub VI子函数-1.3.14 任一范围随机数

[复制链接]
  • TA的每日心情
    擦汗
    昨天 08:04
  • 签到天数: 3382 天

    连续签到: 4 天

    [LV.Master]2000FPS

    发表于 2020-6-5 11:38:46 | 显示全部楼层 |阅读模式 来自:广东省东莞市 电信

    注册登陆后可查看附件和大图,以及购买相关内容

    您需要 登录 才可以下载或查看,没有账号?注册会员

    x

    LabVIEW Vision图像处理开发宝典-第三章 功能函数与主程序-第一节 功能函数与模块-1.3 Sub VI子函数
    1.3.14 任一范围随机数

    图1 任一范围随机数前面板

    图1 任一范围随机数前面板
    图1 任一范围随机数前面板

    图2 任一范围随机数程序框图

    图2 任一范围随机数程序框图
    图2 任一范围随机数程序框图
    LabVIEW中有一个随机数函数,只不过其只能产生大于等于0小于1的双精度浮点数。如下图所示。而要想实现如0~9、100~1000之间的随机数时,这个函数就无法胜任了。因此需要对此函数进行一定的改造。

    图3 LabVIEW自带的随机数(0-1)

    图3 LabVIEW自带的随机数(0-1)
    图3LabVIEW自带的随机数(0-1)
    图2中的方法,原理上是非常简单的。首先指定任一随机数的范围,使用了两个双精度数值控件,一个指定上限High,另一个指定下限Low。然后使用减法函数,用High减去Low,这样就可以得到任一数的范围。接着将得到的范围与LabVIEW自带的随机数(0-1)函数生成的随机数相乘,此时得到的结果就相当于将随机数(0-1)生成的随机数扩大了指定的范围倍,但是这样还不能得到指定的范围倍,最后还需要加上Low才可以得到指定范围内的随机数。例如,High为100,Low为10,则100-10=90,即随机数的范围为90。90乘上0~1之间的随机数,其值范围为大于等于0小于90。最后再加上10,则变成了大于等于10小于100之内的随机数。假如随机数(0-1)输出的值为0.333333,那么得到的随机数33.3333。随机数的小数,可以通过限制输出格式的方法限制其小数位。而如果需要输入整数,可以直接使用数据类型转换,将双精度浮点数数的为整形。
    需要注意的是,因为LabVIEW自带的随机数(0-1)函数输出的值是大于等于0而小于1的,并没有包含1,因此后面产生的任一范围的值,也是不包含上限的。而如果数据进行了转换,从又精度转换成了整形,这时就可能包含上限了。如上面举的例子中,如果输出的数是0.999999,那么得到的双精度浮点数为99.9999,而得到的整形数则为100。
    任一范围随机数是非常有用的,例如在生成序列号时,就会变成有用的。又或者在仿真采集中,要想实现任一图像的随机采集时,也是有用的。

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册会员

    本版积分规则

    LabVIEW HALCON图像处理入门教程(第二版)
    石鑫华机器视觉与LabVIEW Vision图像处理PDF+视频教程11种全套
    《LabVIEW Vision函数实例详解》教程-NI Vision所有函数使用方法介绍,基于NI VISION2020,兼容VDM21/22/23/24

    QQ|石鑫华视觉论坛 |网站地图

    GMT+8, 2024-11-21 01:28

    Powered by Discuz! X3.4

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表