5 views (last 30 days)

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.

Clayton Gotberg
on 27 Apr 2021

Clayton Gotberg
on 27 Apr 2021

Edited: Clayton Gotberg
on 27 Apr 2021

NJ=3

for i = 1:2^NJ-1

binary_save(i,:) = fliplr(dec2bin(i,NJ));

end

I also changed the name of struct to binary_save because struct is the name of a built-in MATLAB function, and it's best to avoid accidentally overwriting MATLAB functions. For example,

input = ones(5,4); % A 5x4 matrix

size = 3; % Setting the size for something later

for k = 1:size(input,1)

% Some operation

end

Will run from k = 1:3 instead of k = 1:5 (the number of rows in the input) and

input = magic(5);

size = 3; % Setting the size for something later

for k = 1:size(input,1)

% Some operation

end

Gives an error about how the index in position 1 doesn't make sense but doesn't even tell you in which line it's occured.

Paul Hoffrichter
on 27 Apr 2021

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'

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

Start Hunting!