我正在关注范德比尔特大学关于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'的规范。
有人能帮我理解吗?
答案 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)