]> gitweb.michael.orlitzky.com - dunshire.git/blobdiff - src/dunshire/matrices.py
Test that vec() is a no-op on vectors.
[dunshire.git] / src / dunshire / matrices.py
index 0d97c0cbc4e83dfc95231a2306b870fb7b93a5db..7bfc429bdd5651b10e07cae79a653e1e3cc925b5 100644 (file)
@@ -101,3 +101,42 @@ def norm(matrix_or_vector):
 
     """
     return sqrt(sum([x**2 for x in matrix_or_vector]))
+
+
+def vec(real_matrix):
+    """
+    Create a long vector in column-major order from ``real_matrix``.
+
+    EXAMPLES:
+
+        >>> A = matrix([[1,2],[3,4]])
+        >>> print(A)
+        [ 1  3]
+        [ 2  4]
+        <BLANKLINE>
+
+        >>> print(vec(A))
+        [ 1]
+        [ 2]
+        [ 3]
+        [ 4]
+        <BLANKLINE>
+
+    Note that if ``real_matrix`` is a vector, this function is a no-op:
+
+        >>> v = matrix([1,2,3,4], (4,1))
+        >>> print(v)
+        [ 1]
+        [ 2]
+        [ 3]
+        [ 4]
+        <BLANKLINE>
+        >>> print(vec(v))
+        [ 1]
+        [ 2]
+        [ 3]
+        [ 4]
+        <BLANKLINE>
+
+    """
+    return matrix(real_matrix, (len(real_matrix), 1))