Compute probability of different states in a binary distribution
    8 views (last 30 days)
  
       Show older comments
    
    Danae Parissi
 on 1 Oct 2019
  
    
    
    
    
    Commented: Dimitris Kalogiros
      
 on 2 Oct 2019
            Hello,
I have table array that is 300X1 consisting of a binary sequence [0,1,0,0,1,1,1,1,0,0,0,0,1...]
I would like to compute the probability that every second order value exists. Meaning how many 00, 01, 10, and 11 exist in the sequence. Do you have any Suggestions on how to go about it?. 
Thank you 
2 Comments
  David Hill
      
      
 on 1 Oct 2019
				Does 0 0 0 0 count as two 00 sequences and 1 1 1 1 0 counts as two 11 sequences or one 11 and one 10? In other words what are the rules for counting the sequences? Do you always start counting from the first element?
Accepted Answer
  Dimitris Kalogiros
      
 on 1 Oct 2019
        clc; clearvars
% input data
N=300; % always even
x=randi([0, 1], N, 1);
% two bits words 
% 00->0 , 01->1 , 10->2 , 11->3
xmsb=x(1:2:end);
xlsb=x(2:2:end);
y=2*xmsb+xlsb;
% calculation of probability
[P,edges] = histcounts(y, 'Normalization', 'probability');
yIntervalCenters=(1/2)*(edges(1:end-1)+edges(2:end));
figure; stem(yIntervalCenters, P); ylabel('probability'); grid on;
5 Comments
  Dimitris Kalogiros
      
 on 2 Oct 2019
				You have just to apply this piece of code on chunks of the input data.
I'm giving an example:
clc; clearvars;
close all;
% input data
N=300; % always even
data=randi([0, 1], N, 1);
setLength=30;
for k=0:setLength:N-setLength
    % extract an interval of data
    x=data(k+1:1:k+setLength);
    % two bits words
    % 00->0 , 01->1 , 10->2 , 11->3
    xmsb=x(1:2:end);
    xlsb=x(2:2:end);
    y=2*xmsb+xlsb;
    % calculation of probability
    edges=-0.5:1:3.5;
    [P,~] = histcounts(y, edges, 'Normalization', 'probability');
    yIntervalCenters=(1/2)*(edges(1:end-1)+edges(2:end));
    figure(1);
    stem(yIntervalCenters, P, 'LineWidth', 2); ylabel('probability');
    grid on; ylim([0, 1]);
    pause(1);
end
I've included some extra graphical tricks 
More Answers (0)
See Also
Categories
				Find more on Large Files and Big Data in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

