计算在一个二进制的不同状态概率分布

2视图(30天)
你好,
我有表数组是300 x1组成的二进制序列(0,1,0,0,1,1,1,1,0,0,0,0,1……]
我想计算每一个二阶的概率值存在。意义有多少00,01、10和11序列中存在。你有什么建议关于如何去做的呢?。
谢谢你!
2的评论
达娜厄Parissi
达娜厄Parissi 2019年10月1日
我从第一个元素开始计数,试图找到成对的东西在一个串行的方式。这意味着序列中的01110000100110
01 11 00 00 10 01
所以2 diplets 01, 11日2 00和2的10。

登录置评。

接受的答案

Dimitris Kalogiros
Dimitris Kalogiros 2019年10月1日
clc;clearvars
%的输入数据
N = 300;%甚至总是
x =兰迪([0,1],N, 1);
%两位字
% 00 - > 0,01 - > 1,10 - > 2,11 - > 3
xmsb = x(1:2:结束);
xlsb = x(2:2:结束);
y = 2 * xmsb + xlsb;
%计算概率
[P,边缘]= histcounts (y,“归一化”,“概率”);
yIntervalCenters =(1/2) *(边边(1:end-1) +(2:结束);
图;茎(yIntervalCenters P);ylabel (“概率”);网格;
5个评论
Dimitris Kalogiros
Dimitris Kalogiros 2019年10月2日
你刚刚使用这段代码块的输入数据。
我给一个例子:
clc;clearvars;
关闭所有;
%的输入数据
N = 300;%甚至总是
data =兰迪([0,1],N, 1);
setLength = 30;
k = 0: setLength: N-setLength
%提取数据的时间间隔
x =数据(k + 1:1: k + setLength);
%两位字
% 00 - > 0,01 - > 1,10 - > 2,11 - > 3
xmsb = x(1:2:结束);
xlsb = x(2:2:结束);
y = 2 * xmsb + xlsb;
%计算概率
= -0.5:1:3.5边缘;
[P ~] = histcounts (y,边缘,“归一化”,“概率”);
yIntervalCenters =(1/2) *(边边(1:end-1) +(2:结束);
图(1);
茎(yIntervalCenters, P,“线宽”2);ylabel (“概率”);
网格;ylim ([0, 1]);
暂停(1);
结束
我已经包括了一些额外的图形技巧

登录置评。

更多的答案(0)

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!