%%unifrnd函数的使用
%unifrnd函数可以创建随机的连续均匀分布的数组,一般式为R=unifrnd(A,B);
%A和B是标量或者相同维数的行向量或者列向量。R=unifrnd(A,B,[m,n])表示生成m*n的
%矩阵,他们的数值在A,B之间,看下面例子
%例1 若A,B都是标量
R=unifrnd(3,4);%运行结果为3到4之间的一个随机数
%例2 若A是标量,B是一维行向量
R=unifrnd(3,[1,2,3,4,5,6,7]);%运行结果为:
% R= NaN NaN 3.0000 3.4868 3.1809 5.1349 5.0288
%其中NaN表示not a number ,这时候在区间[3,1],[3,2],[3,3],[3,4],[3,5],[3,6]
%[3,7]分别单独生成一个随机数
%例3 若A,B,都是同维行向量
R=unifrnd([1,3,6],[2,5,7]);%运行结果为ans= 1.6327 3.3636 6.0785
%结果是在区间[1,2],[3,5],[6,7]各生成一个随机数,这也是A,B要同维数原因
%再来说说R=unifrnd(A,B,n)和R=ubifrnd(A,B,[n,m]),在此讨论A,和B是常量的情况
R=unifrnd(1,3,4);%运行结果如下
% R=
% 1.0925 1.8573 1.4108 2.6969
% 2.9364 1.7689 2.5001 1.6632
% 2.5966 2.0255 2.3338 2.0363
% 2.4108 1.3090 2.2723 1.6110
%上面生成的是数值在区间[1,3]的4*4方阵,即R=unifrnd(A,B,n)生成的是一个数值在
%区间[A,B]之间的n*n的随机矩阵
R=unifrnd(1,3,[2,3]);%运行结果是
% R=
% 1.5391 1.7028 1.3373
% 1.7263 2.5547 2.1727
%上面生成的是数值在区间[1,3]之间的2*3的数字随机矩阵。即R=unifrnd(A,B,[m,n])
%生成的是数值在区间[A,B]的随机矩阵
%%
%看以下实际题目:用MATLAB计算y=x^3,y=12-x与x轴围成的面积
%用随机试验的方法来做,在矩形区域[0,12]*[0,9]上产生10^7个随机点,统计这些点落在
%曲边三角形中的频数,则可以计算出曲边三角形面积
x=unifrnd(0,12,[1,10000000]);
y=unifrnd(0,9,[1,10000000]);
pinshu_=sum((y<x.^2&x<3)|(y<12-x&x>3));
area=12*9*pinshu_/10000000;
%得到的结果 area=49.5036