matlab randint,matlab里有个randintrlv函数,哪位大侠能告诉我这个函数是基于什么原理编出来的?...

满意答案

02ae427d08e371d7e90d5b995e828d6d.png

qq346432101

2013.09.22

02ae427d08e371d7e90d5b995e828d6d.png

采纳率:51%    等级:13

已帮助:31820人

自己看吧,这是matlab里面的函数

function intrlved = randintrlv(data, state)

%RANDINTRLV Reorder symbols using a random permutation.

% INTRLVED = RANDINTRLV(DATA, STATE) rearranges the elements of DATA

% using a random permutation. STATE is a scalar integer value from 0

% to 2^32-1 that determines the specific permutation. The output of

% RANDINTRLV is repeatable for a given value of STATE, but different

% values produce different permutations.

%

% See also RANDDEINTRLV, INTRLV, RANDPERM.

% Copyright 1996-2007 The MathWorks, Inc.

% $Revision: 1.1.6.9 $ $Date: 2008/06/20 07:51:28 $

% --- Usual error checks

error(nargchk(2,2,nargin,'struct'));

error(nargoutchk(0,1,nargout,'struct'));

data_size = size(data); % Obtains size of DATA

orig_data = data;

% --- Checks if DATA is 1-D row vector

if (data_size(1) == 1)

data = data(:); % Converts sequence in DATA to a column vector

data_size = size(data);

end

% --- Error checking on input arguments

if isempty(data)

error('comm:randintrlv:DataIsEmpty','DATA cannot be empty.')

end

if (~isnumeric(data) && ~isa(data,'gf'))

error('comm:randintrlv:DataIsNotNumeric','DATA must be numeric.');

end

if isempty(state)

error('comm:randintrlv:StateIsEmpty','STATE cannot be empty.')

end

if ~isnumeric(state)

error('comm:randintrlv:StateIsNotNumeric','STATE must be numeric.')

end

% Create a local random number stream using the STATE input, which may be

% a seed or a full state vector.

if isscalar(state)

s = RandStream('swb2712','seed',state);

elseif isequal(size(state), [35 1])

s = RandStream('swb2712');

s.State = state;

else

error('comm:randintrlv:InvalidState','STATE must be scalar or 35-by-1.')

end

int_vec = randperm(s,data_size(1)); % Return a random permutation of the integers 1:data_size(2)

% --- Reorder sequence of symbols

intrlved = intrlv(orig_data,int_vec);

% -- end of randintrlv ---

02分享举报

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值