# R - exponent operator example

The example below show the usage of exponent(^) operator in different scenarios.

### Exponent using scalar

If a vector or a matrix is raised to the power of a given scalar (single element atomic vector) , then each element of it is exponentiated.

```#first operand
x1 <- 10
v1 <- c(10, 20, 30)
m1 <- matrix(c(10, 20, 30, 40, 50, 60), nrow=2)

#second operand
x2 <- 2

#using two scalars
print(x1 ^ x2)
#using a vector and a scalar
print(v1 ^ x2)
#using a matrix and a scalar
cat("\n")
print(m1 ^ x2)
```

The output of the above code will be:

``` 100
 100 400 900

[,1] [,2] [,3]
[1,]  100  900 2500
[2,]  400 1600 3600
```

### Exponent using vector

When a vector is raised to the power of another vector, their length should be same or length of longer vector should be multiple of length of shorter vector. Similarly, when a matrix is divided by a vector, the length of longer object should be multiple of length of shorter object.

Please note that, When a matrix is raised to the power of a vector, elements are exponentiated column-wise.

```#first operand
x1 <- 10
v1 <- c(10, 20, 30)
m1 <- matrix(c(10, 20, 30, 40, 50, 60), nrow=2)

#second operand
v2 <- c(1, 2, 3)

#using a scalar (single element
#atomic vector) and a vector
print(x1 ^ v2)
#using two vectors
print(v1 ^ v2)
#using a matrix and a vector
cat("\n")
print(m1 ^ v2)
```

The output of the above code will be:

```   10  100 1000
    10   400 27000

[,1]  [,2]   [,3]
[1,]   10 27000   2500
[2,]  400    40 216000
```

### Exponent using matrix

When a matrix is raised to the power of another matrix, their dimension should be same or dimension of bigger matrix should be multiple of dimension of smaller matrix.

```#first operand
x1 <- 10
v1 <- c(10, 20, 30)
m1 <- matrix(c(10, 20, 30, 40, 50, 60), nrow=2)

#second operand
m2 <- matrix(c(1, 2, 1, 2, 1, 2), nrow=2)

#using a scalar (single element
#atomic vector) and a matrix
print(x1 ^ m2)
#using a vector and a matrix
cat("\n")
print(v1 ^ m2)
#using two matrices
cat("\n")
print(m1 ^ m2)
```

The output of the above code will be:

```     [,1] [,2] [,3]
[1,]   10   10   10
[2,]  100  100  100

[,1] [,2] [,3]
[1,]   10   30   20
[2,]  400  100  900

[,1] [,2] [,3]
[1,]   10   30   50
[2,]  400 1600 3600
```

❮ R - Operators

5