## Substitute Scalars with Matrices

Create the following expression representing the sine function.

```syms w t f = sin(w*t);```

Suppose, your task involves creating a matrix whose elements are sine functions with angular velocities represented by a Toeplitz matrix. First, create a 4-by-4 Toeplitz matrix.

`W = toeplitz(sym([3 2 1 0]))`
```W = [ 3, 2, 1, 0] [ 2, 3, 2, 1] [ 1, 2, 3, 2] [ 0, 1, 2, 3]```

Next, replace the variable `w` in the expression `f` with the Toeplitz matrix `W`. When you replace a scalar in a symbolic expression with a matrix, `subs` expands the expression into a matrix. In this example, `subs` expands ```f = sin(w*t)``` into a 4-by-4 matrix whose elements are `sin(w*t)`. Then it replaces `w` in that matrix with the corresponding elements of the Toeplitz matrix `W`.

`F = subs(f, w, W)`
```F = [ sin(3*t), sin(2*t), sin(t), 0] [ sin(2*t), sin(3*t), sin(2*t), sin(t)] [ sin(t), sin(2*t), sin(3*t), sin(2*t)] [ 0, sin(t), sin(2*t), sin(3*t)]```

Find the sum of these sine waves at `t = π`, ```t = π/2```, `t = π/3`, ```t = π/4```, `t = π/5`, and ```t = π/6```. First, find the sum of all elements of matrix `F`. Here, the first call to `sum` returns a row vector containing sums of elements in each column. The second call to `sum` returns the sum of elements of that row vector.

`S = sum(sum(F))`
```S = 6*sin(2*t) + 4*sin(3*t) + 4*sin(t)```

Now, use `subs` to evaluate `S` for particular values of the variable `t`.

`subs(S, t, sym(pi)./[1:6])`
```[ 0,... 0,... 5*3^(1/2), 4*2^(1/2) + 6,... 2^(1/2)*(5 - 5^(1/2))^(1/2) + (5*2^(1/2)*(5^(1/2) + 5)^(1/2))/2,... 3*3^(1/2) + 6]```

You also can use `subs` to replace a scalar element of a matrix with another matrix. In this case, `subs` expands the matrix to accommodate new elements. For example, replace zero elements of the matrix `F` with a column vector `[1;2]`. The original 4-by-4 matrix `F` expands to an 8-by-4 matrix. The `subs` function duplicates each row of the original matrix, not only the rows containing zero elements.

`F = subs(F, 0, [1;2])`
```F = [ sin(3*t), sin(2*t), sin(t), 1] [ sin(3*t), sin(2*t), sin(t), 2] [ sin(2*t), sin(3*t), sin(2*t), sin(t)] [ sin(2*t), sin(3*t), sin(2*t), sin(t)] [ sin(t), sin(2*t), sin(3*t), sin(2*t)] [ sin(t), sin(2*t), sin(3*t), sin(2*t)] [ 1, sin(t), sin(2*t), sin(3*t)] [ 2, sin(t), sin(2*t), sin(3*t)]```