# How to convert a matrix having integer entries (+ or -) into binary ?

2 views (last 30 days)
Abdul Gaffar on 27 Apr 2018
Commented: Abdul Gaffar on 28 Apr 2018
i have code,
a = -123; % your float point number
n = 16; % number bits for integer part of your number
m = 0; % number bits for fraction part of your number
% binary number
d2b = fix(rem(a*pow2(-(n-1):m),2));
% the inverse transformation
b2d = d2b*pow2(n-1:-1:-m).';
sir, this code converts floating point no. (+ or -) to binary. If i have a matrix say A=[1,2,3;-1,-2,5;-5,6,-23], then how to do the same ??
Abdul Gaffar on 28 Apr 2018

Ameer Hamza on 28 Apr 2018
This code will work for a matrix A
% for transformation
powers = reshape(pow2(-(n-1):m), 1, 1, []);
d2b = fix(rem(a.*powers, 2));
% for inverse transformation
powerReverse = reshape(pow2(n-1:-1:-m), 1, 1, []);
b2d = sum(d2b.*powerReverse, 3);
d2b is 3D matrix. To extract transformation value corresponding to a(i, j) from d2b use squeeze(d2b(i,j,:)).
Abdul Gaffar on 28 Apr 2018
Error using .* Integers can only be combined with integers of the same class, or scalar doubles. Error in dec2bin_mat (line 4) d2b = fix(rem(a.*powers, 2));