Matrix operations not symmetric

Hi. I am relatively new to Julia. Suppose I have a matrix A and I write v = A[:, 1]. Now v is a vector as expected. But u = A[1, :] is a vector again (I expected u to be adjoint instead of vector).

What would the problems be u were an adjoint instead of being vector? I have gone through the thread Issue 4774 but did not understand the reason for this unsymmetrical behavior.

This talk might be helpful:


Thank you for the link to the talk. It is a very nice talk and I had watched it earlier. I watched it again to see if I had missed something. The summary of the talk is that
one requires four objects

  1. Scalars
  2. Column vector
  3. Row Vector
  4. Matrices

to implement householder notation. Please correct me if I am wrong in understanding this.

However, the talk does not answer as to why v = A[:, 1] is a column vector
whereas u = A[1, :] is not a row vector. So things are not symmetrical and
row vectors are not treated on par with column vectors.

In my opinion u being a row vector is more natural. So, my question is what
problems would occur if u was a row vector (LinearAlgebra.Adjoint) instead of column vector (Vector).

This has already been discussed multiple times in this forum. See Indexing into Matrix for example and the linked post within.

Thank you for pointing to the discussion. From comment of lucas711642 I understand that the reason for this behavior is that A[1,:] being an adjoint does not generalize to multidimensional arrays with dimension greater than 2.

1 Like