Give a matrix $\textbf{A} \in \mathbb{C}^{n\times n}$ with eigenvalues $\lambda_1, ..., \lambda_n$ and eigenspaces $$ E_{\lambda_j} = \{\textbf{v} \in \mathbb{C}^n \mid \textbf{Av} = \lambda_j \textbf{v}, j = 1,...,n \}, $$ is there an $\underline{easy}$ way to construct a matrix $\textbf{B} \in \mathbb{C}^{n\times n}$ with the same eigenspaces as $\textbf{A}$, but with different eigenvalues? Say for example, you wanted $\textbf{B}$ to have its dominant $k$ eigenvalues match the dominant $k$ eigenvalues of $\textbf{A}$, but have opposite sign. Would there be a $\underline{fast}$ way to accomplish this, without having to compute the eigenvalues of $\textbf{A}$ ahead of time?
One possibly relevant fact that I know is that diagonalizable matrices commute if and only if they have the same eigenvectors (Simultaneous diagonalization).
I am looking at this problem from a numerical analysis perspective, so methods that require me to compute all the eigenvectors ahead of time would not be useful for my application. Posts providing relevant theorems or useful observations that may be good to know are appreciated. Partial answers and ideas are also appreciated.