ใช้ Mathematica อ่านไฟล์ coda ที่ได้จาก WinBUGS/OpenBUGS

เราใช้Mathematicaอ่านไฟล์ coda กับ index ของมันที่ได้จาก WinBUGS/OpenBUGS แต่ล่ะ chain ด้วยคำสั่ง ReadList เช่น
codaIndex=Partition[ReadList[“codaIndex.txt”,Word],3];
codaCH1=Partition[ReadList[“coda1.txt”,Word],2];

จากนั้นก็เขียนคำสั่งตามนี้เลยครับ โดยที่คำสั่ง posCodaIdx จะเป็นการหาตำแหน่งของโหนด(obj)ที่เราต้องการอยู่ตำแหน่งที่เท่าใดถึงเท่าใดบ้างในไฟล์coda ส่วน codaObj จะเป็นการแสดงลิสต์ตัวเลขหรือchainของobjนั้น

posCodaIdx[obj_]:=ToExpression@(codaIndex[[Position[codaIndex,obj]//Flatten//First]]//Rest)

codaObj[obj_]:=ToExpression@codaCH1[[#1;;#2,2]]&@@posCodaIdx[obj]

ตัวอย่าง

codaex

 

%d bloggers like this: