# Matrix exercises

**R-exercises**, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)

Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

Please note, solutions are available here.

**Exercise 1**

Create three vectors `x,y,z`

with integers and each vector has 3 elements. Combine the three vectors to become a 3×3 matrix `A`

where each column represents a vector. Change the row names to `a,b,c`

.

Think: How about each row represents a vector, can you modify your code to implement it?

**Exercise 2**

Please check your result from Exercise 1, using `is.matrix(A)`

. It should return `TRUE`

, if your answer is correct. Otherwise, please correct your answer. Hint: Note that `is.matrix()`

will return `FALSE`

on a non-matrix type of input. Eg: a vector and so on.

**Exercise 3**

Create a vector with 12 integers. Convert the vector to a 4*3 matrix `B`

using `matrix()`

. Please change the column names to `x, y, z`

and row names to `a, b, c, d`

.

The argument `byrow`

in `matrix()`

is set to be `FALSE`

by default. Please change it to `TRUE`

and print `B`

to see the differences.

**Exercise 4**

Please obtain the transpose matrix of `B`

named `tB`

.

**Exercise 5**

Now `tB`

is a 3×4 matrix. By the rule of matrix multiplication in algebra, can we perform `tB*tB`

in R language? (Is a 3×4 matrix multiplied by a 3×4 allowed?) What result would we get?

**Exercise 6**

As we can see from Exercise 5, we were expecting that `tB*tB`

would not be allowed because it disobeys the algebra rules. But it actually went through the computation in R. However, as we check the output result , we notice the multiplication with a single `*`

operator is performing the componentwise multiplication. It is not the conventional matrix multiplication. How to perform the conventional matrix multiplication in R? Can you compute matrix `A`

multiplies `tB`

?

**Exercise 7**

If we convert `A`

to a `data.frame`

type instead of a `matrix`

, can we still compute a conventional matrix multiplication for matrix `A`

multiplies matrix `A`

? Is there any way we could still perform the matrix multiplication for two `data.frame`

type variables? (Assuming proper dimension)

**Exercise 8**

Extract a sub-matrix from `B`

named `subB`

. It should be a 3×3 matrix which includes the last three rows of matrix `B`

and their corresponding columns.

**Exercise 9**

Compute `3*A`

, `A+subB`

, `A-subB`

. Can we compute `A+B`

? Why?

**Exercise 10**

Generate a n * n matrix (square matrix) `A1`

with proper number of random numbers, then generate another n * m matrix `A2`

.

If we have `A1*M=A2`

(Here * represents the conventional multiplication), please solve for `M`

.

Hint: use the `runif()`

and `solve()`

functions. E.g., `runif(9)`

should give you 9 random numbers.

Image: “200px-Sudoku06u” by DrBorka from nl. Licensed under Wikimedia Commons.

**leave a comment**for the author, please follow the link and comment on their blog:

**R-exercises**.

R-bloggers.com offers

**daily e-mail updates**about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.

Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.