Bit-slicing function for integer matrices
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
引用格式
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. 检索时间: .
MATLAB 版本兼容性
平台兼容性
Windows macOS Linux类别
- Signal Processing > DSP System Toolbox > Signal Generation, Manipulation, and Analysis > Signal Operations >
标签
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!