Converting a binary matrix to decimal.
5 views (last 30 days)
Show older comments
I change the 3-bit binary matrix(a, e) to decimal -> change the decimal to a 4-bit binary matrix -> Add changed a and e = A
The following errors occur.
bin2dec :
The input argument must be a cell type array consisting of a character type vector, string type, or character type vector.
What is the way to correct the error?
Below is the code content.
function A = Xasum(X)
N = 64;
for k = 1 : N
x = X(k, :);
a = x(:, [1,2,3]);
e = x(:, [4,5,6]);
bin2dec(a);
dec2bin((a),4);
bin2dec(e);
dec2bin((e),4);
A = (a + e)';
end
end
X = [0 0 0 0 0 0;
0 0 0 0 0 1;
0 0 0 0 1 0;
0 0 0 0 1 1;
0 0 0 1 0 0;
0 0 0 1 0 1;
0 0 0 1 1 0;
0 0 0 1 1 1;
0 0 1 0 0 0;
0 0 1 0 0 1;
0 0 1 0 1 0;
0 0 1 0 1 1;
0 0 1 1 0 0;
0 0 1 1 0 1;
0 0 1 1 1 0;
0 0 1 1 1 1;
...
...
...
1 1 1 1 0 1;
1 1 1 1 1 0;
1 1 1 1 1 1;
];
0 Comments
Answers (1)
Jan
on 23 Oct 2021
Edited: Jan
on 23 Oct 2021
The error message is clear: bin2dec requires a CHAR vector as input or a cell string. See:
doc bin2dec
You provide a numerical vector consisting on 1s and 0s.
This part of the code does not assigbn the results to a varible, so the computations are lost and only a waste of time:
bin2dec(a);
dec2bin((a),4);
bin2dec(e);
dec2bin((e),4);
What do you want to achieve? a and e are not changed here.
The result A is overwritten in each iteration:
A = (a + e)';
At the end, A contains the value of the last iteration k=N only. Is this wanted?
What is the wanted output for:
X = [0 0 0 0 0 0; ...
0 0 0 0 0 1; ...
0 0 0 0 1 0];
3 Comments
Jan
on 24 Oct 2021
Again: What is the wanted output for the given X?
Splitting the array is easy:
X = [0 0 0 0 0 0; ...
0 0 0 0 0 1; ...
0 0 0 0 1 0];
X1 = X(:, 1:3)
X2 = X(:, 4:6)
Expanding this to 4 bits means inserting columns with zeros:
nRow = size(X, 1);
Y = [zeros(nRow, 1), X1, zeros(nrow, 1), X2];
See Also
Categories
Find more on Numeric Types in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!