⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 randint.m

📁 数字通信第四版原书的例程
💻 M
字号:
function out = randint(n, m, range, seed);
%RANDINT Random integer matrix generator.
%       OUT = RANDINT(N) generates an N-by-N random binary numbers. The
%       appearance of "0" and "1" has even probability.
%
%       OUT = RANDINT(N, M) generates an N-by-M random binary numbers. The
%       appearance of "0" and "1" has even probability.
%
%       OUT = RANDINT(N, M, RANGE) generates N-by-M random integer numbers.
%       The minimum and maximum output integer numbers are specified in 
%       RANGE(1) and RANGE(2). All integers in range [RANGE(1), RANGE(2)] have
%       even probability and appear in the output variable OUT. When RANGE is a
%       positive integer, the output integer range is [0, RANGE].
%       
%       OUT = RNADINT(N, M, RANGE, SEED) specifies the random number seed in
%       SEED.
%
%       See also, RAND, DE2BI, BI2DE.

%       Wes Wang 6/13/94, 10/11/95.
%       Copyright (c) 1995-96 by The MathWorks, Inc.
%       $Revision: 1.1 $  $Date: 1996/04/01 18:02:07 $

rand('uniform')

if nargin > 3
    rand('seed', seed');
end;
if nargin < 2
    m = n;
end;
if nargin < 3
    range = [0, 1];
end;

len_range = length(range);
if len_range < 2
    if len_range < 1
        range = [0, 1];
    elseif range < 0
        error('Incorrect range assignment in RANDINT');
    else
        range = [0, range-1];
    end
end;
range = sort(range);

range(1) = ceil(range(1));
range(2) = floor(range(2));
if range(1) == range(2) 
    out = ones(n, m) * range(1);
    return;
end;

distance = range(2) - range(1);

r = rand(n, m);
out = ones(n,m)*range(1);
for i = 1:distance
    ind = find(r >= i/(distance+1));
    out(ind) = (range(1) + i) * ind./ind;
end;

%--end randint.m--

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -