randint()、rand()与randi()函数的替换问题

项目场景:

提示:这里简述项目相关背景:

randint()、rand()与randi()函数的替换
声明(本文纯属技术探讨,如有侵权请告知,并删除。)

问题描述

提示:这里描述项目中遇到的问题:

由matlab版本造成的,随着matlab版本的更新,matlab删除了 randint 这个函数,导程序不能正常运行。


在这里插入图片描述


原因分析:

提示:这里填写问题的分析:

  1. randint()使用方法(randint在后期版本中会被randi代替)
    f = randint(n,m) :产生一个元素为0或1的n×m的随机矩阵
    f = randint(n,m,[a b]):产生一个n×m,元素是区间[a,b]的随机矩阵
    f = randint(n,m,b):

如果b为正数,产生一个n×m,元素是[0,b-1]的随机矩阵

如果b为负数,产生一个n×m,元素是[b+1,0]的随机矩阵

在新版本生成元素为0或1的n×m随机矩阵:
f = round(rand(n,m)) %round 四舍五入

  1. rand()使用方法 (元素均在(0,1)内)
    X = rand 返回一个在区间 (0,1) 内均匀分布的随机数
    X = rand(n) 返回一个 n×n 的随机数矩阵
    X = rand(n,m) 返回一个 n×m的随机数矩阵

  2. randi()使用方法
    X = randi(imax) 返回一个介于 1 和 imax 之间的伪随机整数标量
    X = randi(imax,n) 返回 n×n 矩阵,其中包含从区间 [1,imax] 的均匀离散分布中得到的伪随机整数
    X = randi(imax,n,m) 返回n×m 数组,元素为介于1和imax的随机整数
    X = randi([imin,imax],___) 使用以上任何语法返回一个数组,其中包含从区间 [imin,imax] 的均匀离散分布中得到的整数
    ————————————————

                         版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
    

原文链接:https://blog.csdn.net/weixin_45130966/article/details/117635722

另外参考如下:
利用randi替换掉randint
randint函数用法
randint的用法如下:

第一种方法:

f=randint(m,n); %随机获得一个m * n的矩阵
1
第二种方法:

f=randint(m,n,[0,1]); %随机获得一个m * n的矩阵,其中[0,1]代表范围
1
第一种方法和第二种方法是等效的,因为默认就是产生[0,1]之间的整数。但如果产生更大范围的整数,就需要利用第二种方式进一步指定区间了。

这里值得注意的是无论是 randi 还是 randint ,后面的 i 和 int 都代表的是整数,所以虽然写做 [0,1] ,但其实生成的随机数只有0和1两种类型。

randi函数用法
f=randi([0,1],m,n); %随机获得m * n的矩阵,其中[0,1]代表范围
1
容易发现,二者的区别主要为:

randi不存在随机数的默认区间了,需要进行指定。
区间参数的位置,由最后一个参数变为了第一个参数了。
————————————————

                        版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/myf_666/article/details/129165673

解决方案:

提示:这里填写该问题的具体解决方案:

此问题如下:需要将Randint 变更为randi在这里插入图片描述
Randint(n,m,b) 函数中,如果b为正数,产生一个n×m,元素是[0,b-1]的随机矩阵,
当前的程序中,表示产生一个1*N 的矩阵,元素为[0,1]之间。

把randint 变更为randi 的用法。
randi([0,1],1,N) ;
修改如下
在这里插入图片描述

程序最终运行成功。

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值