56

I tried using the below code but it works only for 2⨉2 matrix.

 \[
   M=
  \left[ {\begin{array}{cc}
   1 & 2 \\
   3 & 4 \\
  \end{array} } \right]
\]

Now the following doesn't work for me:

\[
  M=
  \left[ {\begin{array}{cc}
   1 & 2 & 3 & 4 & 5\\
   3 & 4 & 5 & 6 & 7\\
  \end{array} } \right]
\]

migrated from stackoverflow.com Sep 3 '12 at 21:36

This question came from our site for professional and enthusiast programmers.

  • It should work with any size. Can you be more specific about what happens when it "doesn't work"? And give an example of input that doesn't give the output you want? – hobbs Sep 1 '12 at 0:00
41

In the example you have, you need the opening line to be

\left[ {\begin{array}{ccccc}

rather than

\left[ {\begin{array}{cc}

When you start with just two cs, you're telling it the matrix only has two columns (and that you want them centered). Then it breaks when you give it data for 5 columns.

  • 4
    @strpeter that's no reason to downvote, it's a valid answer – osvein Oct 29 '18 at 0:15
80

A better way to do it, as the TheHe meantioned, is with the amsmath package:

\documentclass{article}
\usepackage{amsmath}
\begin{document}

\[
M=
  \begin{bmatrix}
    1 & 2 & 3 & 4 & 5 \\
    3 & 4 & 5 & 6 & 7
  \end{bmatrix}
\]

\end{document}

The bmatrix environment will give you [] braces. () braces are also very common. They are created with the pmatrix environment. To include a matrix inline, you can write:

$M = \left\[ \begin{smallmatrix} 1 & 2 \\ 3 & 4 \end{smallmatrix} \right\]$
12

if you use the amsmath package, you can chose out of a lot of matrices like pmatrix or bmatrix.

Check out this list at Wikibooks.

6

Using the pmatrix (p for parentheses) or bmatrix (b for brackets) environments as suggested above, also yields much better spacing than does array with \left( and \right) (for parentheses) or \left[ and \right] (for brackets). With array, the space between the parenthesis or bracket and the numbers is too large. You can see it for yourself comparing the results of this code:

\begin{equation}
R^2 = 
\left({\begin{array}{cc} c & s \end{array}}\right)
\left(\begin{array}{cc} 1 & 0\\ 0 & 1 \end{array}\right)
\left(\begin{array}{c} c \\ s \end{array}\right) 
= c^2 + s^2
\end{equation}

\begin{equation}
R^2 = 
\begin{pmatrix} c & s \end{pmatrix} 
\begin{pmatrix} 1 & 0\\ 0 & 1 \end{pmatrix}
\begin{pmatrix} c \\ s \end{pmatrix} 
= c^2 + s^2
\end{equation}

That outputs the following:

enter image description here

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.