I don't think you're getting the thrust of my question. Yes, if I define `a`

as `a = Transpose[{{a1, a2, a3}}]`

and do the same for b and define `n`

as 3 and use `ArrayFlatten[]`

so that the scalar 0 is expanded into a column vector, WolframAlpha will be able to calculate with my matrix. I know how to do that, and it's not what I want, because if the answer includes `a.a`

, what WolframAlpha will give me instead is `a1^2 + a2^2 + a3^2`

, and now I have to do some difficult factorization to translate those scalar operations back into more compact and readable matrix operations. Make sense?

I would also like note here that that the matrix I wrote *can* be transposed, as written. Since `n`

is undefined, `IdentityMatrix[n]`

is left in symbolic form. Here's the result of `Transpose[A].A`

, split over multiple lines for readability:

```
{{2 IdentityMatrix[n]^2,a IdentityMatrix[n],-b IdentityMatrix[n]},
{a IdentityMatrix[n],a^2,0},
{-b IdentityMatrix[n],0,b^2}}
```

I would actually be fine with this, if the symbolic multiplications were treated as non-commutive, e.g. `b.a`

instead of `a b`

, but because they're not, I can't trust any further calculations done this way.