About matrix: how to make matrix binary (0 and 1)

I need write the matrix (0 0 0 0 0), (1 0 0 0 0), (1 1 0 0 0), (1 1 1 0 0),..., (1 1 1 1 1) with 32 possibilities of zero and one using the matlab, and don´t hand.
Thanks.

Answers (1)

Matt Fig
Matt Fig on 17 Dec 2012
Edited: Matt Fig on 17 Dec 2012
S = dec2bin((1:32).') % If a string is o.k.
N = S - '0' % If you need a numeric matrix.

9 Comments

How does the N=S-'0' work? I see that it does, very clever, but why?
Thanks Matt Fig...
And it´s possible to do the matrix (-1 -1 -1 -1 -1), (-1 -1 -1 -1 1), (-1 -1 -1 1 1), (-1 -1 1 1 1),..., (1 1 1 1 1) with 32 possibilities of one and one minus using the matlab, and don´t hand.
@JRC: Add:
N(N==0) = -1;
Please accept an answer if it helps you.
John, MATLAB converts both strings to doubles then subtracts. It is the same as doing:
S - 48
You can also cast to logical if you want a boolean type of variable:
logicalVariable = logical(doubleVariable);
Logical variables are useful in indexing, especially in image processing. In image processing a "binary" variable is usually assumed to be of logical type ("class").
S = (dec2bin((1:32)) - '0') * 2 - 1
S = 32×6
-1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 1 1 -1 -1 -1 1 -1 -1 -1 -1 -1 1 -1 1 -1 -1 -1 1 1 -1 -1 -1 -1 1 1 1 -1 -1 1 -1 -1 -1 -1 -1 1 -1 -1 1 -1 -1 1 -1 1 -1

Sign in to comment.

Asked:

JRC
on 17 Dec 2012

Commented:

on 15 Aug 2021

Community Treasure Hunt

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

Start Hunting!