具有相等转移概率的随机置换

时间:2017-11-16 15:33:14

标签: matlab statistics permutation probability

鉴于x = [1,2,3,4],我希望得到一个由x的排列产生的160个数字的序列,但有一些警告:

  1. 不重复相同的号码[ex 1,1]
  2. 每对夫妻的平等转移概率
  3. 我可以利用Matlab功能吗?

1 个答案:

答案 0 :(得分:0)

close all
clear all
clc

x=[1 2 3 4];
Nx=numel(x);
N=10^6; % lenght of sequence
S=nan(1,Nx);
idx=1;
S(1)=x(idx);
xrest=x(x~=x(idx));
for iN=2:N

    idx=randi(Nx-1);
    S(iN)=xrest(idx);
    xrest=x(x~=xrest(idx));
end
%%
sum(diff(S)==0); % check for repeats
%%
pairs=nchoosek(x,2); % get forward transitions
pairs=[pairs;pairs(:,[2,1])]; % add reverse transitions
Count=nan(size(pairs,1),1);
for iPair=1:size(pairs,1)
   Count(iPair)= numel(find(S(1:end-1)==pairs(iPair,1) & S(2:end) ==pairs(iPair,2)));
end
%%
bar(Count) % equal transition probabilities