【问题标题】:Matlab, matrix containing random numbers within specified rangeMatlab,包含指定范围内随机数的矩阵
【发布时间】:2013-01-07 02:57:38
【问题描述】:

我对 Matlab 完全陌生,我正在尝试创建一个 m×n 矩阵,其中包含指定范围内的数字(即 -1 和 1 之间)。

是否有与rand(m, n) 等效的函数,我可以在其中自己指定范围,或者我需要显式创建一堆随机数(如answer 中所述)并从中创建一个矩阵?

任何指向相关文档等的指针都非常感谢。

【问题讨论】:

  • Matlab 有很好的文档。下次试试help rand

标签: matlab random matrix range


【解决方案1】:

6 *rand(4) => 创建一个 4x4 矩阵,其中随机数介于 0 和 6

之间

6 *rand(4,5) => 创建一个 4x5 矩阵,其中随机数介于 0 和 6

之间

randi (5,3) => 创建一个 3x3 矩阵,其中包含 0 到 5

之间的随机整数

2+(6-2)*rand(3) => 创建一个 3x3 矩阵,其中随机数介于 2 之间>6

【讨论】:

    【解决方案2】:

    也许更简单的方法是输入

    r = randi ( [a b], m , n )
    

    其中a = -1(或下限)、b = 1(或上限)、m x n 指定。如果randi 不起作用,您可能需要使用randint

    【讨论】:

    • 这只会生成整数值,这似乎不是 OP 想要的
    【解决方案3】:

    这直接来自 Matlab 的 rand 文档。这是你想要的吗?

    示例 1

    根据区间 [a, b] 上的均匀分布生成值:

    r = a + (b-a).*rand(100,1);
    

    通过在命令窗口中输入doc rand 尝试阅读 Matlab 文档。它确实信息丰富且用户友好。

    【讨论】:

    • 我确实看到了这个,但这并没有给出一个矩阵(或者我做错了什么?),所以我需要创建这样的随机数,然后自己将它放入一个矩阵中还是有什么东西可以立即返回一个矩阵?
    • 这很奇怪。我刚试过A = -1 + 2*rand(5,5),我得到了一个 5x5 矩阵!文档中编写的代码(以及我上面的答案)将为您提供 100 x 1 向量。
    • 啊,好吧,对不起,别在意我的愚蠢,我才意识到我做错了什么......非常感谢:)
    猜你喜欢
    • 2017-08-01
    • 2013-10-10
    • 1970-01-01
    • 1970-01-01
    • 2011-07-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-22
    • 1970-01-01
    相关资源
    最近更新 更多