Having taught linear algebra using both Mathematica and Matlab, I concur with what others have said that the Mathematica's features for linear algebra include all one might need for a course in undergraduate linear algebra. Since symbolic computation is also fully integrated into Mathematica, it might be better in some ways. For example, we can solve symbolic systems of small dimension fairly easily.
LinearSolve[{{a, b}, {c, d}}, {e, f}]

Note how the determinant appears in the denominator illustrating its importance in determining when a system is solvable. This can be done just as easily for a 3x3 or 4x4 system.
Also, there is a common mis-conception that Mathematica does not or cannot distinguish between row and column vectors, as illustrated by Nasser's comment. I think this is not correct. It's just that if you want to represent a row or column vector, you should use the full matrix representation of said vector. Consider, for example, the following two dot product computations (whose orders cannot be reversed):
{{a, b}, {c, d}}.{{x}, {y}} // MatrixForm

{{x, y}}.{{a, b}, {c, d}} // MatrixForm

In addition, though, Mathematica provides a consistent notion of dot product between dimensions based on tensor products. Here's the product of a rank 3 tensor with a rank 2 tensor.
Table[a[i, j, k], {i, 1, 2}, {j, 1, 2}, {k, 1, 2}].
Table[b[i, j], {i, 1, 2}, {j, 1, 2}]

By contrast, Matlab is limited to 2D floating point matrices. When you type x=2
in Matlab, you've defined a 2D matrix; the equivalent definition in Mathematica would be x={{2}}
.