看板 Statistics 關於我們 聯絡資訊
剛試了從matlab的程式轉到R,但是出來的結果很不相同 檢查許多遍覺得應該會是相同(rowsum應該都是1), 但可能有細微的地方沒弄清,請問哪個轉碼的過程弄錯了? 謝謝 %Matlab function pr = markov(n,rho); pr=zeros(n,n); p1=pr;p2=pr;p3=pr;p4=pr; p=0.5*(1+rho); pr(1:2,1:2)=[p 1-p;1-p p]; for i = 3:n; p1(1:i-1,1:i-1)=pr(1:i-1,1:i-1); p2(1:i-1,2:i )=pr(1:i-1,1:i-1); p3(2:i ,1:i-1)=pr(1:i-1,1:i-1); p4(2:i ,2:i )=pr(1:i-1,1:i-1); pr=p*(p1+p4)+(1-p)*(p2+p3); pr(2:i-1,1:i)=0.5*pr(2:i-1,1:i); end; a=markov(4,.2) sum(a,2) #R markov<-function(n,rho){ pr=matrix(0,n,n); p1=p2=p3=p4=pr; p=(1+rho)*0.5; pr[1:2,1:2]=matrix(c(p,1-p),2,2); for (i in 3:n){ p1[1:i-1,1:i-1]=pr[1:i-1,1:i-1]; p2[1:i-1,2:i ]=pr[1:i-1,1:i-1]; p3[2:i ,1:i-1]=pr[1:i-1,1:i-1]; p4[2:i ,2:i ]=pr[1:i-1,1:i-1]; pr=p*(p1+p4)+(1-p)*(p2+p3); pr[2:i-1,1:i]=0.5*pr[2:i-1,1:i]; } return(pr); } a=markov(4,.2); rowSums(a); -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.86.139 ※ 編輯: bcs 來自: 140.112.86.139 (05/11 13:12) ※ 編輯: bcs 來自: 140.112.86.139 (05/11 13:12)
clickhere:1:(i-1) 05/11 15:28
lin15:b大可以問一下要怎麼轉嗎... 05/11 16:31
bcs:用手工調的 05/13 10:50