Bit-slicing function for integer matrices

function E = bitreslice(A,b_old, b_new, echo_on) Re-packages bits of a matrix of integers.
265 Downloads
Updated 12 Dec 2011

View License

function E = bitreslice(A,b_old, b_new, echo_on)

Author: Damon Bradley

Purpose: A is an [M by N] matrix of integers. Implicit is each element's
representaiton in binary, which is b_old bits wide. Matrix E is output
which is an [M by L] matrix of integers, with the bits of A concatenated
column-wise and re-split into b_new bit-wide elements. The number of bits
per row, b_old*N must be evenly divisible by b_new to work.

Inputs:
A - An M by N matrix of unsigned integers
b_old - Number of bits to represent A, should be based on maximum value
b_new - New number of bits to slice each bit-concatenated row of A
echo_on - Choose 1 to display underlying bit representation. Don't specify otherwise

Outputs:
E - A new matrix, same number of rows as A, but whose elements
a new set of integers based on the concatenation of ALL bits
for every row, repackaged as elements "b_new" bits wide.
Usage Example:
Re arrange the 4-bit elements of matrix A into a new matrix with 3-bit
elements. The product of the number of columns of A and how many bits
each element is originally represented with must be evenly divisible by
b_new, the new number of bits the output matrix elements are represented
with.

A =

1 4 7
2 3 5
3 3 0

B =

'0001' '0100' '0111'
'0010' '0011' '0101'
'0011' '0011' '0000'

C =

000101000111
001000110101
001100110000

D =

'000' '101' '000' '111'
'001' '000' '110' '101'
'001' '100' '110' '000'

E =

0 5 0 7
1 0 6 5
1 4 6 0

Cite As

Damon Bradley (2024). Bit-slicing function for integer matrices (https://www.mathworks.com/matlabcentral/fileexchange/34173-bit-slicing-function-for-integer-matrices), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2009a
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

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

Start Hunting!
Version Published Release Notes
1.3.0.0

Fixed another comment

1.1.0.0

Just fixed a comment typo.

1.0.0.0