注册登陆后可查看附件和大图,以及购买相关内容
您需要 登录 才可以下载或查看,没有账号?注册会员
x
LabVIEW Vision图像处理开发宝典-第三章 功能函数与主程序-第一节 功能函数与模块-1.3 Sub VI子函数
1.3.14 任一范围随机数
图1 任一范围随机数前面板
图1 任一范围随机数前面板
图2 任一范围随机数程序框图
图2 任一范围随机数程序框图 LabVIEW中有一个随机数函数,只不过其只能产生大于等于0小于1的双精度浮点数。如下图所示。而要想实现如0~9、100~1000之间的随机数时,这个函数就无法胜任了。因此需要对此函数进行一定的改造。
图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。 任一范围随机数是非常有用的,例如在生成序列号时,就会变成有用的。又或者在仿真采集中,要想实现任一图像的随机采集时,也是有用的。
|