# how to create logical matrix directly in matlab

## how to create logical matrix directly in matlab

Use false directly:

```
a = false(10,10);
```

In Matlab, there are a few constants that are actually matrix-generating commands. They are:

```
true(10); true(n,m,k,..); % for an all-true 10-by-10 or n-by-m-by-k-by-...matrix
false(10); false(n,m,k,..); % for an all-false 10-by-10 or n-by-m-by-k-by-...matrix
inf(10); inf(n,m,k,..); % for an all-inf 10-by-10 or n-by-m-by-k-by-...matrix
nan(10); nan(n,m,k,..); % for an all-nan 10-by-10 or n-by-m-by-k-by-...matrix
```

The constant forms are basically just aliases:

```
a = inf; % alias for a = inf(1);
b = true; % alias for b = true(1);
```

etc. Also, here are some more things that cannot be repeated enough:

```
rand(10); rand(n,m,k,..); % for an all-random 10-by-10 or n-by-m-by-k-by-...matrix
zeros(10); zeros(n,m,k,..); % for an all-zero 10-by-10 or n-by-m-by-k-by-...matrix
zeros(n,m,k,...,uint8); % for an all-zero n-by-m-by-k-by-...matrix of type uint8
ones(10); zeros(n,m,k,..); % for an all-one 10-by-10 or n-by-m-by-k-by-...matrix
ones(n,m,k,...,uint8); % for an all-one n-by-m-by-k-by-...matrix of type uint8
eye(10); eye(n,m,uint8); % for an identity matrix of type uint8 of 10-by-10 or n-by-m
```

#### how to create logical matrix directly in matlab

Matlabs logical data type does not appear to have a constructor other than the `logical`

function itself. That being said, you can effectively typecast a double array as a logical array very easily, where all nonzero values become logic 1 and all zeros logic 0:

```
A = [1 0 2; -1 0 0; 0 1.53 -100.00]
B = logical(A)
B =
1 0 1
1 0 0
0 1 1
```

You can obviously condense this assignment to one line if youd like, so it becomes nearly as simple as assigning any other data type.