在一系列指定数字之间创建随机X-by-Y矩阵。这里发生了什么事?

时间:2016-08-28 20:41:15

标签: matlab

我正在关注范德比尔特大学关于Matlab基础知识的在线课程(Coursera MOOC,MATLAB入门计算机编程,讲师:Mike Fitzpatrick)。在课程中,教授创建了一个名为myRand的自定义函数,在设定的数字间隔内生成一个3乘4的矩阵。

我知道Matlab中内置了一个相同的功能,但是教授从头开始创建自己的功能,以告诉我们内置函数幕后发生的事情。

% Produce a 3-by-4 matrix between between the input low and high
function a = myRand(low,high)
a = low + rand(3,4) * (high-low);
end

'>>test = myRand(2,10)

test =

    5.1378    7.6484    2.3694    7.5586
    7.2438    2.2547    2.7771    4.5368
    3.3695    4.2154    8.5877    9.6018

我明白因为rand()会产生0-1的随机数;有意义的是,“低”将设置下限(低+兰特)。但是我不知道如何设置上限。操作'(高 - 低)'是高和低之间的差异。而'myRand'中没有明确设置'High'的规范。

有人能帮我理解吗?

1 个答案:

答案 0 :(得分:0)

举例说明: -

假设 low = 2 high = 5
现在您已经知道 rand 生成的值始终位于 0 1之间即可。

如果生成的值为 0 ,那么
a = low + value *(high-low); 表示 a = 2 + 0 *(5-2) = 2

当生成的值为 1
a = low + value *(high-low); 表示 a = 2 + 1 *(5-2) = 5

这意味着在 0和1 之间生成的任何值都会在 2和5 之间提供 a 即如果 values ∈ (0,1) 则表示 a ∈ (2,5)