Bit stream in to digits
8 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Raza
am 19 Feb. 2014
Beantwortet: Jos (10584)
am 19 Feb. 2014
i have a stream of bits(1 and o), when i save these bit , like i have 128 bits, b1 contains 1 to 10 bits, b2 contain 11 to 20 and so on. Now i got a problem that when i save these bits in b1, b2 , b3 and so on. and want to retrieve, it gives value instead of binary digits, so to solve this issue, i used bitget command but it only support 52 digits, while my requirement is 128
4 Kommentare
Akzeptierte Antwort
Mischa Kim
am 19 Feb. 2014
Raza, you can retrieve the bit pattern by concatenating the cell strings:
[r, c] = size(b);
bit_stream = [];
for ii = 1:c
bit_stream = strcat(bit_stream,b{ii});
end
disp(bit_stream)
2 Kommentare
Jos (10584)
am 19 Feb. 2014
STRCAT can concatenate an infinite number of arguments. In Mischa's nice answer you can exploit comma-separate list expansion and get rid of the for-loop:
b = {'101','000','111','010','101'} % shortened example
bitstream = strcat(b{:})
Weitere Antworten (1)
Jos (10584)
am 19 Feb. 2014
You can split the string into cells
% (smaller) example
MyStr = '10100101010101010010101010101010' ; % a string of arbitrary length
N = 5 ; % the size of each block (in your case 128).
maxN = numel(MyStr)
ix0 = 1:N:maxN
fh = @(X) MyStr(X:min((X+N-1),maxN))
B = arrayfun(fh,ix0,'un',0)
% now B{K} holds the K-th block of N bits of S
MyStrToo = cat(2,B{:})
isequal(MyStrToo, MyStr) % check!
0 Kommentare
Siehe auch
Kategorien
Mehr zu Logical finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!