50种分布代码,本TXT文件是本人借鉴各种书籍而写的50种概率分布的代码实现,集合在一个TXT文件中,文件开始有各个分布的目录,想在MATLAB中调用相应分布函数的话直接复制出来即可,对金融的数学分析有莫大的帮助,欢迎抢购啊!
已经有人买了,鉴于楼下有要求,我就贴部分代码出来吧。
funcName = mfilename;
if nargin == 0
help(funcName);
return;
elseif nargin == 1
runMode = 'distribHelp';
elseif nargin == 2
runMode = 'genRun';
sampleSize = [1 1];
else
runMode = 'genRun';
sampleSize = [varargin{1:end}];
end
distribNameInner = lower( distribName( ~isspace( distribName ) ) );
if strcmp(runMode, 'distribHelp')
fid = fopen( [ funcName '.m' ], 'r' );
printHelpFlag = 0;
while 1
tline = fgetl( fid );
if ~ischar( tline )
fprintf( '\n Unknown distribution name ''%s''.\n', distribName );
break;
end
if ~isempty( strfind( tline, [ 'END ', distribNameInner,' HELP' ] ) )
printHelpFlag = 0;
break;
end
if printHelpFlag
startPosition = strfind( tline, ' % ' ) + 3;
printLine = tline( startPosition : end );
if ~strcmp( funcName, 'randraw' )
indxs = strfind( printLine, 'randraw' );
while ~isempty( indxs )
headLine = printLine( 1:indxs(1)-1 );
tailLine = printLine( indxs(1)+7:end );
printLine = [ headLine, funcName, tailLine ];
indxs = strfind( printLine, 'randraw' );
end
end
pause(0.02);
fprintf( '\n%s', printLine );
end
if ~isempty( strfind( tline, [ 'START ', distribNameInner,' HELP' ] ) )
printHelpFlag = 1;
end
end
fprintf( '\n\n' );
fclose( fid );
if nargout > 0
varargout{1} = [];
end
return;
end
if length(sampleSize) == 1
sampleSize = [ sampleSize, 1 ];
end
if strcmp(runMode, 'genRun')
runExample = 0;
plotFlag = 0;
dbclear if warning;
out = [];
if prod(sampleSize) > 0
switch lower( distribNameInner )
case {'alpha'}
% START alpha HELP
% THE ALPHA DISTRIBUTION
%
% pdf(y) = b*normpdf(a-b./y) ./ (y.^2*normcdf(a)); y>0; a>0; b>0;
% cdf(y) = normcdf(a-b./y)/normcdf(a); y>0; a>0; b>0;
% where normpdf(x) = 1/sqrt(2*pi) * exp(-1/2*x.^2); is the standard normal PDF
% normcdf(x) = 0.5*(1+erf(y/sqrt(2))); is the standard normal CDF
% USAGE:
% randraw('alpha', [], sampleSize) - generate sampleSize number
% of variates from Alpha distribution with shape parameters a and b;
% randraw('alpha') - help for Alpha distribution;
%
% EXAMPLES:
% 1. y = randraw('alpha', [1 2], [1 1e5]);
% 2. y = randraw('alpha', [2 3], 1, 1e5);
% 3. y = randraw('alpha', [10 50], 1e5 );
% 4. y = randraw('alpha', [20.5 30.5], [1e5 1] );
% 5. randraw('alpha');
% EXAMPLES:
% 1. y = randraw('anglit', [], [1 1e5]);
% 2. y = randraw('anglit', [], 1, 1e5);
% 3. y = randraw('anglit', [], 1e5 );
% 4. y = randraw('anglit', [10 3], [1e5 1] );
% 5. randraw('anglit');
建议大家不要盲目下载,有MATLAB基础的朋友可以下载,本TXT文件前面有说明,跟MATAB帮助类似,请细心看完。
想直接调用的朋友在下载此TXT文件之后,保存为randraw.m文件保存于您的当前MATLAB工作文件夹下即可。



雷达卡



“心理博弈”哦~~
京公网安备 11010802022788号







