# Creating a logical array

864 views (last 30 days)
E K on 4 Aug 2012
Commented: Image Analyst on 16 Jan 2023
hi guys,
How can i create a logical array [1 0 1 0 1 1 ....] 1-by-15 it will go into gamultiobj with bitstring so the the arranging is not important.

Azzi Abdelmalek on 4 Aug 2012
x=boolean([0 1 0 1 0 1 0 1])
Image Analyst on 16 Jan 2023
Note: the boolean function is only in the Stateflow toolbox which is kind of rare. See the warning in the help:
The operator boolean is supported only in Stateflow® charts. In MATLAB®, use logical.
If you don't have the Stateflow toolbox, use logical as shown in the other answers below. Actually, even if you do have it, I think you should use logical instead, especially for portability of your code.

Image Analyst on 4 Aug 2012
Edited: Image Analyst on 16 Jan 2023
To get a random placement of trues and falses, use randi
logicalArray = logical(randi(2, [1 15]) - 1)
logicalArray = 1×15 logical array
1 1 1 1 0 0 0 1 1 0 1 0 0 0 1
Otherwise you can put in exactly what you want:
logicalArray = logical([1, 0, 1, 0, 1, 1])
logicalArray = 1×6 logical array
1 0 1 0 1 1

Captain Karnage on 16 Jan 2023
What's the ultimate goal? If you need to initialize a logical array, you can use true or false:
either
logicalArray = false(1,15);
-OR-
logicalArray = true(1,15);
will initialize a 1x15 logical array that you can then set the individual values for, then if you set any element, like
logicalArray(5) = 1;
It will be of type logical rather than double.
If you already know your entire array, you can also do it manually with true and false:
logicalArray = [ true false true false true true true false true false true true true false true ];
will output
1 x 15 logical array
[ 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1]