【问题标题】:Is there a way in Matlab using the pseudo number generator to generate numbers within a specific range?Matlab 中有没有办法使用伪数生成器生成特定范围内的数字?
【发布时间】:2011-01-10 06:35:11
【问题描述】:

例如:

round(7*rand(1,5))

在 1 到 7 之间生成 5 个数字 有没有办法在 5 到 7 之间生成 5 个随机数? 还是对它的抽象?

【问题讨论】:

    标签: matlab random numbers integer range


    【解决方案1】:

    首先,如果你想生成随机的整数值,最好使用函数RANDI。然后只需相应地移动和缩放随机数即可。以下应为您提供介于 5 和 7 之间的随机整数:

    nums = randi(3,[1 5])+4;
    

    编辑:正如 Amro 的评论和 Doug's answer 指出的那样,有一个更直接的解决方案,您可以直接将范围指定为 RANDI 的第一个参数:

    nums = randi([5 7],[1 5]);
    

    【讨论】:

    • 其实可以直接指定想要的范围:randi([5 7],[1 5])
    • @Amro:好点子。不知何故,我跳过了文档中的那一行。 ;)
    【解决方案2】:

    更一般地说:

    minInt = 5;
    maxInt = 7;
    numInts = 10;
    
    r = randi([minInt, maxInt],[1,numInts])
    
    r =
    
     6     7     7     7     6     5     5     5     7     5
    

    【讨论】:

    • +1 @MatlabDoug,感谢您一直阅读 RANDI 函数的文档。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-16
    • 1970-01-01
    • 1970-01-01
    • 2016-05-04
    • 1970-01-01
    相关资源
    最近更新 更多