Generate specific binary combination

Hi guys,
I am working with binary combinations and encountering a problem with memory as the N value gets bigger. I am using this function to create my binary combinations array:
N = 4;
dec2bin(0:2^N-1) - '0'
I need to iterate each combination in the array in my calculation (i.e., iterating each row of the array at a time). Is there a way that we can generate a specific combination without having to create the whole array beforehand and use only one row at a time?
For example, 7th row in the array is [0 1 1 0]. I want to create [0 1 1 0], do the calculation, then continue to 8th row and so on.
Your inputs are much appreciated.

 採用された回答

Walter Roberson
Walter Roberson 2023 年 11 月 30 日

1 投票

N = 4;
for K = 0 : 2^N - 1
thiscombo = dec2bin(K,N);
stuff
end

1 件のコメント

Khoa Tran
Khoa Tran 2023 年 11 月 30 日
Thanks @Walter Roberson. This is just what I need.

サインインしてコメントする。

その他の回答 (1 件)

Chunru
Chunru 2023 年 11 月 30 日

1 投票

You can put the dec2bin inside the loop so it won't be a big array.
N = 4;
for i=0:2^N-1
c = dec2bin(i, N) - '0'
end
c = 1×4
0 0 0 0
c = 1×4
0 0 0 1
c = 1×4
0 0 1 0
c = 1×4
0 0 1 1
c = 1×4
0 1 0 0
c = 1×4
0 1 0 1
c = 1×4
0 1 1 0
c = 1×4
0 1 1 1
c = 1×4
1 0 0 0
c = 1×4
1 0 0 1
c = 1×4
1 0 1 0
c = 1×4
1 0 1 1
c = 1×4
1 1 0 0
c = 1×4
1 1 0 1
c = 1×4
1 1 1 0
c = 1×4
1 1 1 1

1 件のコメント

Khoa Tran
Khoa Tran 2023 年 11 月 30 日
Thanks @Chunru. A simple and effective solution.

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeCreating and Concatenating Matrices についてさらに検索

製品

リリース

R2023b

質問済み:

2023 年 11 月 30 日

コメント済み:

2023 年 11 月 30 日

Community Treasure Hunt

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

Start Hunting!

Translated by