HELP WITH MY PROBLEM
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I have doubts about how to do this. First explain what I have already done so you can understand what I do. I have a sequence, for example of 20 binary numbers:
0(1) 0(2) 0(3) 1(4) 1(5) 0(6) 0(7) 0(8) 0(9) 0(10) 1(11) 0(12) 0(13) 0(14) 0(15) 1(16)
0(17) 0(18) 1(19) 1(20).
After I created length subsequences 2,3 and 4 as follows:
Take the example of substrings of length 4. Shape creation is the same as for length 2 and 3:
1) 1(1) 0(2) 1(3) 1(4)
2) 1(1) 1(3) 0(5) 1(7)
3) 1(1) 1(4) 1(7) 1(10)
4) 1(1) 0(5) 0(9) 1(13)
5) 1(1) 0(6) 1(11) 0(16)
6) 1(1) 1(7) 1(13) 1(19)
7) 0(2) 1(3) 1(4) 0(5)
8) 0(2) 1(4) 0(6) 0(8)
9) 0(2) 0(5) 0(8) 1(11)
10) 0(2) 0(6) 1(10) 0(14)
11) 0(2) 1(7) 1(12) 1(17)
12) 0(2) 0(8) 0(14) 0(20)
13) 1(3) 1(4) 0(5) 0(6)
14) 1(3) 0(5) 1(7) 0(9)
15) 1(3) 0(6) 0(9) 1(12)
16) 1(3) 1(7) 1(11) 0(15)
17) 1(3) 0(8) 1(13) 1(18)
18) 1(4) 0(5) 0(6) 1(7)
19) 1(4) 0(6) 0(8) 1(10)
20) 1(4) 1(7) 1(10) 1(13)
21) 1(4) 0(8) 1(12) 0(16)
22) 1(4) 0(9) 0(14) 1(19)
23) 0(5) 0(6) 1(7) 0(8)
24) 0(5) 1(7) 0(9) 1(11)
25) 0(5) 0(8) 1(11) 0(14)
26) 0(5) 0(9) 1(13) 1(17)
27) 0(5) 1(10) 0(15) 0(20)
28) 0(6) 1(7) 0(8) 0(9)
29) 0(6) 0(8) 1(10) 1(12)
30) 0(6) 0(9) 1(12) 0(15)
31) 0(6) 1(10) 0(14) 1(18)
32) 1(7) 0(8) 0(9) 1(10)
33) 1(7) 0(9) 1(11) 1(13)
34) 1(7) 1(10) 1(13) 0(16)
35) 1(7) 1(11) 0(15) 1(19)
36) 0(8) 0(9) 1(10) 1(11)
37) 0(8) 1(10) 1(12) 0(14)
38) 0(8) 1(11) 0(14) 1(17)
39) 0(8) 1(12) 0(16) 0(20)
40) 0(9) 1(10) 1(11) 1(12)
41) 0(9) 1(11) 1(13) 0(15)
42) 0(9) 1(12) 0(15) 1(18)
43) 1(10) 1(11) 1(12) 1(13)
44) 1(10) 1(12) 0(14) 0(16)
45) 1(10) 1(13) 0(16) 1(19)
46) 1(11) 1(12) 1(13) 0(14)
47) 1(11) 1(13) 0(15) 1(17)
48) 1(11) 0(14) 1(17) 0(20)
49) 1(12) 1(13) 0(14) 0(15)
50) 1(12) 0(14) 0(16) 1(18)
51) 1(13) 0(14) 0(15) 0(16)
52) 1(13) 0(15) 1(17) 1(19)
53) 0(14) 0(15) 0(16) 1(17)
54) 0(14) 0(16) 1(18) 0(20)
55) 0(15) 0(16) 1(17) 1(18)
56) 0(16) 1(17) 1(18) 1(19)
57) 1(17) 1(18) 1(19) 0(20)
After these 57 patterns I calculate the relative frequency of all of them. Also get the relative frequencies of patterns substrings of length 2 and 3.
Okay, so far I have work already done with matlab. My doubts are from here
------------------------------------------------------------------------------------------------
Suppose you now want to know the probability that the number (21) of the above sequence is 0 ò 1, ie:
0(1) 0(2) 0(3) 1(4) 1(5) 0(6) 0(7) 0(8) 0(9) 0(10) 1(11) 0(12) 0(13) 0(14) 0(15) 1(16)
0(17) 0(18) 1(19) 1(20) X(21).
My first question is how to create the following matrix:
0(18) 1(19) 1(20) X(21)-----------[0 1 1 X]
0(15) 0(17) 1(19) X(21)-----------[0 1 1 X]
0(12) 0(15) 0(18) X(21)-----------[0 0 0 X]
0(9) 0(13) 0(17) X(21)-------------[0 0 0 X]
0(6) 1(11) 1(16) X(21)-------------[0 1 1 X]
0(3) 0(9) 0(15) X(21)---------------[0 0 0 X]
Considering that if X = 1:
1-[0 1 1 1]
2-[0 1 1 1]
3-[0 0 0 1]
4-[0 0 0 1]
5-[0 1 1 1]
6-[0 0 0 1]
If X = 0:
7-[0 1 1 0]
8-[0 1 1 0]
9-[0 0 0 0]
10-[0 0 0 0]
11-[0 1 1 0]
12-[0 0 0 0]
With these patterns and taking into account the dependency between the previous numbers in the sequence, I have 12 patterns of which I have to study the probability that X = 0 ò X = 1.
As I calculated the relative frequencies of patterns of length 2, 3 and 4, do the following:
For example first pattern:
1-[0 1 1 1]
[0 1] ------------ relative frequency pattern of length 2
+
[0 1 1] ---------- relative frequency pattern of length 3
+
[0 1 1 1] ------- relative frequency pattern of length 4
= Frequency dependence assuming total pattern
Realize the same for the other 11 patterns and study the probability:
P (X = 1) = number of patterns with X = 1 with probability greater than X = 0 / total number of
patterns
P (X = 0) = number of patterns with X = 0 with probability greater than X = 1 / total number of patterns
So my question is how I can perform this process from the dotted line to the end, and I've tried a thousand ways but I don`t get the correct result.
thank you very much
5 commentaires
Image Analyst
le 24 Sep 2013
Well for the first substring you have this: 1(1) 0(2) 1(3) 1(4). Where did this come from? From this "0(1) 0(2) 0(3) 1(4) 1(5) 0(6) 0(7) 0(8) 0(9) 0(10) 1(11) 0(12) 0(13) 0(14) 0(15) 1(16) 0(17) 0(18) 1(19) 1(20)" I take it your array is [0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 1 0 0 1 1]. So "1(1) 0(2) 1(3) 1(4)" = [1 0 1 1], right? And this does not occur anywhere in the array, right? All right, fine. But why does that string have (1) etc. in parentheses - what does it mean? Clearly it's not the indexes where they came from since element 1 is 0, not 1. And in "13) 1(3) 1(4) 0(5) 0(6)" you say that elements 3,4,5 and 6 are 1,1,0, & 0, yet in the long expression, 3,4,5 & 6 are 0,1,1,0, not 1,1,0,0. So at that point I threw up my hands and gave up.
Réponses (3)
Image Analyst
le 24 Sep 2013
This might be instructive:
% Define numerical matrix.
m=[0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 1 0 0 1 1]
% Turn it into a string.
strm = sprintf('%d', m)
% Define a pattern to look for.
patternToLookFor = '011'
% Find index(es) where that pattern begins.
indexes = strfind(strm, patternToLookFor)
In the command window:
m =
0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 1 0 0 1 1
strm =
00011000001000010011
patternToLookFor =
011
indexes =
3 18
Walter Roberson
le 24 Sep 2013
5 commentaires
Walter Roberson
le 25 Sep 2013
n-grams work with symbols. They don't care whether the symbols are letters or bits.
Tally(1+bit1,1+bit2,1+bit3,1+bit4) = Tally(1+bit1,1+bit2,1+bit3,1+bit4) + 1;
and then
bit1 = bit2; bit2 = bit3; bit3 = bit4; bit4 = next bit
Now you can calculate conditional probabilities as Tally(1+A,1+B,1+C,1+D) / sum(Tally(1+A,1+B,1+C,:),4))
The "1+" adjust for the fact that indices start at 1 in MATLAB but bits are 0 or 1.
The probability of D after ABC is the count of ABCD divided by the count of (ABC0 + ABC1)
Voir également
Catégories
En savoir plus sur Matrix Indexing dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!