2011-08-18 37 views
1

为了提高向后兼容性,我想将所有的“randi([m,n])”替换为仅使用rand的函数,因为早期版本的MATLAB没有有兰迪功能。在MATLAB中使用'rand'来实现'randi'

+0

使用[WHICH](HTTP ://www.mathworks.com/help/techdoc/ref/which.html)首先检查是否存在RANDI函数,以便运行现代MATLAB版本的用户不要超载。 –

+0

@ b3:我会使用EXIST而不是WHICH:'exist('randi','builtin')== 5' – Amro

+0

顺便说一句,这篇文章回答你的问题:http://stackoverflow.com/questions/6415424/using- rand-in-matlab-to-produce-numbers-between-limits/6415698#6415698 – Amro

回答

3

如果你在谈论randi(imax,[m,n]),你可以使用类似:

ceil(imax*rand([m,n])) 

如果你的意思randi([imin,imax]),是指在评论中提供的链接荷银:Using rand in matlab to produce numbers between limits

+1

确切地说,'randi([m,n])'表示在区间[m,n]中生成一个数字,它不是与rand([m,n])'相同,它生成一个统一数字为n的统一数字的大小为m的矩阵 – Amro

+0

+ +1为澄清,Amro – Kelly

+0

或者直接从Octave获取:https://searchcode.com /于codesearch /视图/ 64615324 / – Anon