Problems with changing the order of a binary representation
Show older comments
Hello everyone,
I have a problem to organize a binary representation that I calculate in Matlab, like this:
NJ=3
for i = 1:2^NJ-1
struct(i,:) = dec2bin(i,NJ);
end
This gives me this result:
ans:
struct =
7×3 char array
'001'
'010'
'011'
'100'
'101'
'110'
'111'
The problem is that I need this binary representation to have the following order:
100
010
110
001
101
011
111
I really need this to be done by the code because if you increase the number in NJ, it is no longer practical to do the manual change, as the amount of struct data increases exponentially.
I appreciate any help, Thank you.
3 Comments
Clayton Gotberg
on 27 Apr 2021
I noticed that you've changed the list from a character array to plain numbers. Do you also need the output to be plain numbers? If so, you can use str2double to convert the characters into numbers.
Jennifer Arellana
on 27 Apr 2021
Clayton Gotberg
on 27 Apr 2021
what is B_ampl? If it's your replacement for struct, the problem is probably with the formatting of the input. If you input a simple char array, the function assumes you're giving it one number. If you input a string array or a cell array containing char arrays, the function can see the numbers separately.
Accepted Answer
More Answers (1)
Paul Hoffrichter
on 27 Apr 2021
NJ=4
for i = 1:2^NJ-1
struct(i,:) = fliplr(dec2bin(i,NJ));
end
struct =
15×4 char array
'1000'
'0100'
'1100'
'0010'
'1010'
'0110'
'1110'
'0001'
'1001'
'0101'
'1101'
'0011'
'1011'
'0111'
'1111'
Categories
Find more on Data Type Conversion 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!