function [v_th,arate]=metrop(logpost,th_0,m,scale,par) % METROP - simulates from a 1-parameter posterior using Metropolis algorithm % V_TH=METROP(LOGPOST,TH_0,M,SCALE,PAR) returns a vector V_TH of simulated % values from the posterior distribution, where LOGPOST is a function % containing the definition of the log posterior, TH_0 is the starting % value, M is the number of values to simulate, SCALE is the % value of the standard deviation used in the steps of the random walk % Metropolis algorithm, and PAR is vector of parameter values. if nargin<4, scale=1; end if nargin<3, m=1000; end v_th=zeros(m,1); f0=feval(logpost,th_0,par); arate=0; for i=1:m th_1=th_0+randn*scale; f1=feval(logpost,th_1,par); u=rand