鉴于x = [1,2,3,4],我希望得到一个由x的排列产生的160个数字的序列,但有一些警告:
我可以利用Matlab功能吗?
答案 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