马尔科夫链matlab代码

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

马尔科夫链matlab代码
马尔科夫链
%This is programmed for calculating the Markov-chain state transfer probability(First order) matrice! %This program is based on 4 thresholds,that is, the transfer probability matrice is 4x4.
%Follow the notes to conduct the processing.
%Coded by EOS
%Nanchang China
clear
clc
%A=csvread('widetype.csv');% % or manually define via "A=[ ]".
A=[]
%A is the information matrix which must be adjusted to wide-type,i(section)-j(time)%%
out=zeros(4,4);%Initialize the transfering probability(First order) matrice
[r1,r2,r3]=deal(1.009, 1.285, 1.7256);%%Define the state threshold value manually.
flag=0;trans=zeros(4,4);
s0=zeros(1,4);epro=zeros(10,4);
for i=1:10
if A(i,1)< r1
s0(1,1)=s0(1,1)+1;
elseif A(i,1)>= r1 && A(i,1)
s0(1,2)=s0(1,2)+1;
elseif A(i,1)>=r2 && A(i,1)
s0(1,3)=s0(1,3)+1;
else
s0(1,4)=s0(1,4)+1;
end
end
for i=1:10
for t=1:14
if A(i,t)< r1
epro(i,1)=epro(i,1)+1;
elseif A(i,t)>= r1 && A(i,t)
epro(i,2)=epro(i,2)+1;
elseif A(i,t)>=r2 && A(i,t)
epro(i,3)=epro(i,3)+1;
else
epro(i,4)=epro(i,4)+1;
end
end
end
for s=1:10
for t=1:13
%%within an initial state 1
if A(s,t) < r1
flag=1;
if A(s,t+1)
trans(flag,1)=trans(flag,1)+1; elseif A(s,t+1)>=r1 && A(s,t+1) trans(flag,2)=trans(flag,2)+1; elseif A(s,t+1)>=r2 && A(s,t+1) trans(flag,3)=trans(flag,3)+1; else
trans(flag,4)=trans(flag,4)+1; end
%%within an initial state 2 elseif A(s,t)>=r1 && A(s,t) flag=2;
if A(s,t+1)
trans(flag,1)=trans(flag,1)+1; elseif A(s,t+1)>=r1 && A(s,t+1) trans(flag,2)=trans(flag,2)+1; elseif A(s,t+1)>=r2 && A(s,t+1) trans(flag,3)=trans(flag,3)+1; else
trans(flag,4)=trans(flag,4)+1; end
%%within an initial state 3 elseif A(s,t)>=r2 && A(s,t) flag=3;
if A(s,t+1)
trans(flag,1)=trans(flag,1)+1;
elseif A(s,t+1)>=r1 && A(s,t+1)
trans(flag,2)=trans(flag,2)+1;
elseif A(s,t+1)>=r2 && A(s,t+1)
trans(flag,3)=trans(flag,3)+1;
else
trans(flag,4)=trans(flag,4)+1;
end
%%within an initial state 4
else
flag=4;
if A(s,t+1)
trans(flag,1)=trans(flag,1)+1;
elseif A(s,t+1)>=r1 && A(s,t+1)
trans(flag,2)=trans(flag,2)+1;
elseif A(s,t+1)>=r2 && A(s,t+1)
trans(flag,3)=trans(flag,3)+1;
else
trans(flag,4)=trans(flag,4)+1;
end
end
end
end
%Calculate the Markov state transfering probability matrice for i=1:4 for j=1:4
out(i,j)=trans(i,j)/sum(trans(i,:));
end
end
disp('Markov state transfering probability matrice is:') disp(out)。

相关文档
最新文档