decimal to binary conversion of an array

i have an array a=[102, 2,3,201,8,9]
so when i convert it to binary each term has same length as
[ 0 1 1 0 0 1 1 0
0 0 0 0 0 0 1 0
0 0 0 0 0 0 1 1
1 1 0 0 1 0 0 1
0 0 0 0 1 0 0 0
0 0 0 0 1 0 0 1]
but i want each term to become binary according to the size not with padded zero as 2 in binary is '10' not '0 0 0 0 0 0 1 0'
thanks in advance

4 Kommentare

Walter Roberson
Walter Roberson am 1 Okt. 2019
Bearbeitet: Walter Roberson am 1 Okt. 2019
Your current output data type is numeric array. What output data type are you hoping for? And what is the largest value that needs to be converted ?
PRAVEEN GUPTA
PRAVEEN GUPTA am 2 Okt. 2019
Numeric only And largest value is 999
Walter Roberson
Walter Roberson am 2 Okt. 2019
Numeric only
Sorry, that is not possible in MATLAB. In MATLAB, numeric arrays must always have the same number of columns in each row.
If you had wanted cell array of character vectors, or string array, or cell array of numeric vectors, then those would be possible.
PRAVEEN GUPTA
PRAVEEN GUPTA am 2 Okt. 2019
Then how to do cell array of numeric vector??

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Stephen23
Stephen23 am 2 Okt. 2019
Bearbeitet: Stephen23 am 2 Okt. 2019

2 Stimmen

Cell array of character vectors:
>> a = [102,2,3,201,8,9];
>> c = arrayfun(@dec2bin,a,'uni',0);
>> c{:}
ans = 1100110
ans = 10
ans = 11
ans = 11001001
ans = 1000
ans = 1001
Cell array of numeric vectors:
>> c = arrayfun(@(n)dec2bin(n)-'0',a,'uni',0);
>> c{:}
ans =
1 1 0 0 1 1 0
ans =
1 0
ans =
1 1
ans =
1 1 0 0 1 0 0 1
ans =
1 0 0 0
ans =
1 0 0 1

Kategorien

Community Treasure Hunt

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

Start Hunting!

Translated by