Read the Direction Before Multiplying
A change-of-basis matrix does not act on an unlabelled list of numbers. Its input is a coordinate vector relative to one ordered basis, and its output is the coordinate vector relative to another. Mixing up the two directions can produce a perfectly valid matrix product with the wrong meaning. The labels on the matrix, its columns, and a test vector together provide a reliable way to check what a calculation does.
Throughout, take the scalar field to be \(\mathbb{R}\), and let \(V\) be a finite-dimensional vector space. An ordered basis is written \(\mathcal{B}=(\mathbf{b}_1,\dots,\mathbf{b}_n)\). For \(\mathbf{v}\in V\), its coordinate vector \([\mathbf{v}]_{\mathcal{B}}\) is the column of coefficients in the unique expansion \(\mathbf{v}=x_1\mathbf{b}_1+\cdots+x_n\mathbf{b}_n\). The order matters: the first coordinate is the coefficient of \(\mathbf{b}_1\), the second is the coefficient of \(\mathbf{b}_2\), and so on.
Read the arrow from right to left as a route for the coordinate vector: the source basis is on the right of the arrow, and the destination basis is on the left. Accordingly, \(\mathbf{P}_{\mathcal{C}\leftarrow\mathcal{B}}\) takes \(\mathcal{B}\)-coordinates as input and returns \(\mathcal{C}\)-coordinates. Its columns are coordinates in \(\mathcal{C}\), even though the vectors those columns describe belong to \(\mathcal{B}\).
The distinction between a vector and its coordinate vector is important. The vector \(\mathbf{v}\) is an element of \(V\); \([\mathbf{v}]_{\mathcal{B}}\) and \([\mathbf{v}]_{\mathcal{C}}\) are two columns of numbers representing that same vector relative to different ordered bases. Changing coordinates changes the column, not the vector.
Why the Label Gives the Correct Direction
Proof. Write \([\mathbf{v}]_{\mathcal{B}}=(x_1,\dots,x_n)^{\top}\). By the definition of coordinates, \(\mathbf{v}=\sum_{j=1}^{n}x_j\mathbf{b}_j\). By the definition of the transition matrix, column \(j\) is \([\mathbf{b}_j]_{\mathcal{C}}\). Matrix multiplication therefore gives \[ \mathbf{P}_{\mathcal{C}\leftarrow\mathcal{B}}[\mathbf{v}]_{\mathcal{B}} =\sum_{j=1}^{n}x_j[\mathbf{b}_j]_{\mathcal{C}}. \] Each coordinate map preserves linear combinations, so the right-hand side is the coordinate vector in \(\mathcal{C}\) of \(\sum_{j=1}^{n}x_j\mathbf{b}_j=\mathbf{v}\). Hence it equals \([\mathbf{v}]_{\mathcal{C}}\). Taking \(\mathbf{v}=\mathbf{b}_j\) gives \([\mathbf{b}_j]_{\mathcal{B}}=\mathbf{e}_j\), so the formula sends \(\mathbf{e}_j\) to column \(j\). That column is therefore \([\mathbf{b}_j]_{\mathcal{C}}\), as claimed. \(\square\)
This proof also explains a useful reading rule: if a matrix is labelled \(\mathbf{P}_{\mathcal{C}\leftarrow\mathcal{B}}\), apply it to a column of \(\mathcal{B}\)-coordinates and expect a column of \(\mathcal{C}\)-coordinates. A matrix labelled in the reverse direction has a different input and output. Do not infer direction from how familiar the entries look; inspect the labels and verify the columns.
Worked Example: From a Nonstandard Basis to Standard Coordinates
Let \(\mathcal{B}=((1,1),(1,-1))\) and let \(\mathcal{C}=(\mathbf{e}_1,\mathbf{e}_2)\), the standard basis of \(\mathbb{R}^2\). Find \(\mathbf{P}_{\mathcal{C}\leftarrow\mathcal{B}}\), then convert the vector with \(\mathcal{B}\)-coordinates \((2,1)^{\top}\).
The columns must be the \(\mathcal{C}\)-coordinates of the vectors in \(\mathcal{B}\). Since \(\mathcal{C}\) is the standard basis, these are the vectors themselves:
Apply this matrix to the given \(\mathcal{B}\)-coordinate vector:
The output is \([\mathbf{v}]_{\mathcal{C}}\), not \([\mathbf{v}]_{\mathcal{B}}\). Reconstructing from the input gives \(\mathbf{v}=2(1,1)+1(1,-1)=(3,1)\), which agrees with the standard-coordinate output. This check confirms both the multiplication and its direction.
Reading the Reverse Direction
To construct the transition matrix from \(\mathcal{C}\) to \(\mathcal{B}\), use the definition again: its columns are the \(\mathcal{B}\)-coordinates of the ordered vectors in \(\mathcal{C}\). This is not a matter of relabelling the first matrix. The column descriptions must match the new source and destination. In particular, a column of \(\mathbf{P}_{\mathcal{B}\leftarrow\mathcal{C}}\) describes a \(\mathcal{C}\)-basis vector using \(\mathcal{B}\)-coordinates.
Worked Example: Convert in Both Directions
Use \(\mathcal{B}=((1,0),(1,1))\) and \(\mathcal{C}=((1,1),(0,1))\). Find each transition matrix and use them to convert \(\mathbf{x}=(2,3)\).
First express the \(\mathcal{B}\)-basis vectors in \(\mathcal{C}\)-coordinates. The equations are \((1,0)=1(1,1)-1(0,1)\) and \((1,1)=1(1,1)+0(0,1)\). Thus
For the reverse direction, express each \(\mathcal{C}\)-basis vector in \(\mathcal{B}\)-coordinates. Since \((1,1)=0(1,0)+1(1,1)\) and \((0,1)=-1(1,0)+1(1,1)\),
Find the coordinates of \(\mathbf{x}\) in each basis. In \(\mathcal{B}\), write \(\mathbf{x}=a(1,0)+b(1,1)=(a+b,b)\). Comparing with \((2,3)\) gives \(b=3\) and \(a=-1\), so \([\mathbf{x}]_{\mathcal{B}}=(-1,3)^{\top}\). In \(\mathcal{C}\), write \(\mathbf{x}=c(1,1)+d(0,1)=(c,c+d)\). Then \(c=2\), \(d=1\), and \([\mathbf{x}]_{\mathcal{C}}=(2,1)^{\top}\).
Check both matrix products:
The products have the directions indicated by their labels. As an additional check, reconstruct from the \(\mathcal{C}\)-coordinates: \(2(1,1)+1(0,1)=(2,3)\), the original vector.
A Test Vector as a Direction Check
A reliable way to audit a proposed conversion is to choose a vector whose coordinates you can compute directly in both bases. Then apply the labelled matrix to the coordinates in its stated source basis and compare the result with the directly computed coordinates in its stated destination basis. Finally, reconstruct the vector from the output. This test can reveal a reversed matrix, a misplaced column, or an arithmetic error.
One test vector can check a particular calculation, but a successful test on one vector alone does not prove that a proposed matrix converts every coordinate vector correctly. The general reason the matrix works is the theorem above: its columns are the destination coordinates of all source-basis vectors, so linear combinations of those columns convert every vector’s coordinates.
Worked Example: Read the Labels in Three Dimensions
Let \(\mathcal{B}=(\mathbf{e}_1,\mathbf{e}_2,\mathbf{e}_3)\) be the standard basis of \(\mathbb{R}^3\), and let \(\mathcal{C}=((1,0,0),(1,1,0),(0,0,1))\). Find \(\mathbf{P}_{\mathcal{C}\leftarrow\mathcal{B}}\) and convert \(\mathbf{x}=(4,2,5)\) from \(\mathcal{B}\)-coordinates to \(\mathcal{C}\)-coordinates.
The vectors in \(\mathcal{C}\), in \(\mathcal{B}\)-coordinates, are the columns of \(\begin{bmatrix}1&1&0\\0&1&0\\0&0&1\end{bmatrix}\). To obtain \(\mathbf{P}_{\mathcal{C}\leftarrow\mathcal{B}}\), instead express each standard basis vector in \(\mathcal{C}\)-coordinates: \[ \mathbf{e}_1=1\mathbf{c}_1+0\mathbf{c}_2+0\mathbf{c}_3,\quad \mathbf{e}_2=-1\mathbf{c}_1+1\mathbf{c}_2+0\mathbf{c}_3,\quad \mathbf{e}_3=0\mathbf{c}_1+0\mathbf{c}_2+1\mathbf{c}_3. \] Therefore
Because \(\mathcal{B}\) is standard, \([\mathbf{x}]_{\mathcal{B}}=(4,2,5)^{\top}\). Multiply to convert:
Check directly that \(2\mathbf{c}_1+2\mathbf{c}_2+5\mathbf{c}_3=(2,0,0)+(2,2,0)+(0,0,5)=(4,2,5)\). Thus \((2,2,5)^{\top}\) is indeed the \(\mathcal{C}\)-coordinate vector of the original vector.
Common Direction Errors
Wrong calculation: In the first example, \(\mathbf{P}_{\mathcal{B}\leftarrow\mathcal{C}}\) takes standard coordinates to \(\mathcal{B}\)-coordinates. Applying it to the \(\mathcal{B}\)-coordinate vector \((2,1)^{\top}\) therefore uses the wrong input type: \[ \begin{bmatrix}\tfrac12&\tfrac12\\[2pt]\tfrac12&-\tfrac12\end{bmatrix} \begin{bmatrix}2\\1\end{bmatrix} = \begin{bmatrix}\tfrac32\\[2pt]\tfrac12\end{bmatrix}. \] These numbers are not the standard coordinates of the vector \(2(1,1)+(1,-1)=(3,1)\).
Correction: The input is in \(\mathcal{B}\)-coordinates and the desired output is in \(\mathcal{C}\)-coordinates, so use \(\mathbf{P}_{\mathcal{C}\leftarrow\mathcal{B}}\): \[ \begin{bmatrix}1&1\\1&-1\end{bmatrix} \begin{bmatrix}2\\1\end{bmatrix} = \begin{bmatrix}3\\1\end{bmatrix}. \] The result agrees with reconstructing the vector in the standard basis.
Another frequent error is to build the columns from the wrong basis. For \(\mathbf{P}_{\mathcal{C}\leftarrow\mathcal{B}}\), take each vector of \(\mathcal{B}\) and find its coordinates in \(\mathcal{C}\); do not take the vectors of \(\mathcal{C}\) and find their \(\mathcal{B}\)-coordinates. Those latter columns define the matrix with the reverse arrow.
Use This Three-Part Check
For \(\mathbf{P}_{\mathcal{C}\leftarrow\mathcal{B}}\), the input is a \(\mathcal{B}\)-coordinate column and the output is a \(\mathcal{C}\)-coordinate column.
Column \(j\) must be \([\mathbf{b}_j]_{\mathcal{C}}\), the destination coordinates of the \(j\)th source-basis vector.
Convert a vector with known coordinates, then use the output coordinates to reconstruct the same vector.
The matrix’s direction is determined by what its columns represent, not by a visual resemblance to another matrix or by the order in which the bases were introduced. Keeping the source coordinates, destination coordinates, and column meaning together makes the multiplication interpretable before any arithmetic is done.
Check Your Understanding
For each question, keep the input and output basis labels visible, and use reconstruction to check any numerical conversion.
- In \(\mathbf{P}_{\mathcal{D}\leftarrow\mathcal{B}}\), which basis supplies the input coordinates, and which basis supplies the output coordinates?
- What does column \(j\) of \(\mathbf{P}_{\mathcal{C}\leftarrow\mathcal{B}}\) represent?
- Let \(\mathcal{B}=((1,0),(1,1))\) and \(\mathcal{C}=((1,1),(0,1))\). Find \([\,(3,2)\,]_{\mathcal{B}}\) and convert it to \(\mathcal{C}\)-coordinates.
- For \(\mathcal{B}=((1,0),(0,1))\) and \(\mathcal{C}=((1,1),(1,-1))\), construct \(\mathbf{P}_{\mathcal{C}\leftarrow\mathcal{B}}\) from its column definition.
- Explain why checking one vector can detect a direction error but does not by itself prove a proposed matrix works for every vector.