创建随机数的matlab函数源码

  • 格式:pdf
  • 大小:43.59 KB
  • 文档页数:9

下载文档原格式

  / 9
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

%*****************************************************************************
80
%
%% RAND_TEST01 simply calls the random number generator a few times.
%
n, x_ave, x_ave - 0.5, x_var, x_var - 1.0 / 12.0 ); n = n * 10; end
return end function timestamp ( )
%***************************************************************************** 80 % %% TIMESTAMP prints the current YMDHMS date as a timestamp. % % Licensing: % % This code is distributed under the GNU LGPL license. % % Modified: % % 14 February 2003 % % Author: % % John Burkardt %
fprintf ( 1, '\n' );
fprintf ( 1, 'RAND_TEST:\n' ); fprintf ( 1, ' Normal end of execution.\n' );
fprintf ( 1, '\n' ); timestamp ( );
return end function rand_test01 ( )
timestamp ( ); fprintf ( 1, '\n' ); fprintf ( 1, 'RAND_TEST:\n' ); fprintf ( 1, ' MATLAB version\n' ); fprintf ( 1, ' Test the MATLAB RAND function.\n' );
c= 0.1037 0.3044 0.4321 0.0960 0.8795
d= 0.4961 0.4842 0.8362 0.1146
0.9611 0.8500
0.4599 0.8635
0.4767 0.8786
0.3620 0.6463
e=
0.8118 0.9436 0.9043 0.3433 0.0642
%***************************************************************************** 80 % %% RAND_TEST02 sets the seed before calling RAND. % % Licensing: % % This code is distributed under the GNU LGPL license. % % Modified: % % 11 June 2012 % % Author: % % John Burkardt %
fprintf ( 1, ' E = rand ( 5 ) a 5 by 5 random matrix.\n' );
a = rand ( ) b = rand ( 5, 1 ) c = rand ( 1, 5 ) d = rand ( 3, 4 ) e = rand ( 5 )
return
end function rand_test02 ( seed )
fprintf ( 1, ' B = rand ( 5, 1 ) a random column vector of 5 entries.\n' );
fprintf ( 1, ' C = rand ( 1, 5 ) a random row vector of 5 entries.\n' );
fprintf ( 1, ' D = rand ( 3, 4 ) a 3 by 4 random matrix.\n' );
% Licensing:
%
% This code is distributed under the GNU LGPL license.
%
% Modified:
%
% 22 October 2009
%
% Author:
%
% John Burkardt
%
fprintf ( 1, '\n' );
fprintf ( 1, 'RAND_TEST01:\n'பைடு நூலகம்);
fprintf ( 1, ' In MATLAB, unit random numbers are generated by calling RAND:\n' );
fprintf ( 1, '\n' );
fprintf ( 1, ' A = rand ( )
a random scalar value.\n' );
0.8585 0.3477 0.0182 0.1560 0.5856
0.8465 0.9979 0.7316 0.5484 0.5977
0.0997 0.9614 0.2513 0.4184 0.9359
0.3893 0.9230 0.5029 0.3784 0.6705
RAND_TEST02: By setting the random number seed, you can control how the random number sequence begins.
fprintf ( 1, '\n' ); fprintf ( 1, 'RAND_TEST02:\n' ); fprintf ( 1, ' By setting the random number seed, you can control\n' ); fprintf ( 1, ' how the random number sequence begins.\n' ); fprintf ( 1, '\n' ); fprintf ( 1, ' The command "rng ( 123456789 )" sets the seed to 123456789.\n' );
for i = 1 : 5 a = rand ( ); fprintf ( 1, ' RAND() = %g\n', a );
end
return end function rand_test03 ( )
%*****************************************************************************
80
%
%% RAND_TEST03 generate a lot of random values.
%
% Licensing:
%
% This code is distributed under the GNU LGPL license.
%
% Modified:
%
% 22 October 2009
%
% Author:
t = now; c = datevec ( t ); s = datestr ( c, 0 ); fprintf ( 1, '%s\n', s );
return end
测试结果:
>> rand_test 11-Jun-2012 15:58:51
RAND_TEST: MATLAB version Test the MATLAB RAND function.
for i = 1 : 5 a = rand ( ); fprintf ( 1, ' RAND() = %g\n', a );
end
rng ( seed );
fprintf ( 1, '\n' ); fprintf ( 1, ' Seed has been reset to %d\n', seed ); fprintf ( 1, '\n' ); fprintf ( 1, ' Now generate 5 more random values.\n' );
The command "rng ( 123456789 )" sets the seed to 123456789.
Seed has been set to 123456789
Now generate 5 random values. RAND() = 0.532833 RAND() = 0.534137 RAND() = 0.509553 RAND() = 0.713564 RAND() = 0.256999
函数
function rand_test ( )
%***************************************************************************** 80 % %% RAND_TEST shows how random numbers are generated in MATLAB. % % Licensing: % % This code is distributed under the GNU LGPL license. % % Modified: % % 11 June 2012 % % Author: % % John Burkardt %
Seed has been reset to 123456789
Now generate 5 more random values. RAND() = 0.532833 RAND() = 0.534137 RAND() = 0.509553 RAND() = 0.713564 RAND() = 0.256999
rand_test01 ( );
seed = 123456789; rand_test02 ( seed );
seed = 987654321; rand_test02 ( seed );
seed = 123456789; rand_test02 ( seed );
rand_test03 ( ); % % Terminate. %
C = rand ( 1, 5 ) a random row vector of 5 entries.
D = rand ( 3, 4 ) a 3 by 4 random matrix.
E = rand ( 5 ) a 5 by 5 random matrix.
a=
0.1954
b=
0.5357 0.0070 0.5555 0.0882 0.9447
rng ( seed ); fprintf ( 1, '\n' ); fprintf ( 1, ' Seed has been set to %d\n', seed ); fprintf ( 1, '\n' ); fprintf ( 1, ' Now generate 5 random values.\n' );
RAND_TEST01: In MATLAB, unit random numbers are generated by calling RAND:
A = rand ( )
a random scalar value.
B = rand ( 5, 1 ) a random column vector of 5 entries.
%
% John Burkardt
%
fprintf ( 1, '\n' );
fprintf ( 1, 'RAND_TEST03:\n' );
fprintf ( 1, ' Compute a lot of random values.\n' );
fprintf ( 1, '\n' );
fprintf ( 1, ' The average should be 0.5\n' );
fprintf ( 1, ' The variance should be 1/12.\n' );
fprintf ( 1, '\n' );
fprintf ( 1, '
N Ave
Ave-1/2 Var
Var-1/12\n' );
fprintf ( 1, '\n' );
n = 1;
for n_log = 0 : 7 x = rand ( n, 1 ); x_ave = sum ( x(1:n,1) ) / n; x_var = var ( x(1:n,1) ); fprintf ( 1, ' %8d %f %9.2e %f %9.2e\n', ...