Seeking help creating a transition probability matrix for a markov chain

57 views (last 30 days)
I was hoping that somebody might be able to help me out in creating a transition probability matrix?
I normally use excel for statistical modelling but this particular problem takes hours to execute using spreadsheets and it is too large and complicated for a spreadsheet .
I have created a variables called 'data' and it contains velocity and acceleration data in 2 columns.
For example
Vel Acc
1 0.28
2 0.28
2 0.00
3 0.28
5 0.56
6 0.28
I was hoping to create a transition probability matrix of the probability of transition from one velocity acceleration pair to another. First of all you would create a frequency matrix counting all the transitions from one velocity acceleration pair to another and convert to a transition probability matrix by dividing by the row total.
Here is a graphical illustration of the matrix.
I would be very grateful if somebody had the time to help me with this. I'm trying to develop my matlab stills but would appreciate if somebody could show me how they would approach the problem.
Kind regards

Answers (2)

Roger Stafford
Roger Stafford on 3 Jan 2013
It would be very similar to the solution I gave in your earlier posting. Let VA be your list of velocities and accelerations.
[uv,~,nv] = unique(VA(:,1));
[ua,~,na] = unique(VA(:,2));
F = accumarray([nv,na],1,[length(nv),length(na)]);
T = bsxfun(@rdivide,F,sum(F,2));
Again, the rows would correspond to velocity values in uv and the columns to corresponding accelerations in ua.
Attilio Pittelli
Attilio Pittelli on 27 Nov 2020
Hi, i'm still getting a row of NaN, but not at the last row. Could you tell me why?
Thank you

Sign in to comment.

shahab anjum
shahab anjum on 2 Mar 2020
please help me too if i have 1000x286 matrix how can i calculate the transistion and emission probabilites of that matrix plz


Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!