123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- from iglhelpers import *
- ############# Dense Matrix Types #############
- # Create a numpy dense array
- # 2 types are supported by the wrappers: float64 and int64
- dense_matrix = np.array( [ (1,2,3), (4,5,6) , (7,8,9) ], dtype='float64')
- # libigl wrappers uses Eigen as a matrix type, you can easily convert between numpy and Eigen using
- # the helper function p2e. This operation duplicates the data.
- dense_matrix_eigen = p2e(dense_matrix)
- # The Eigen wrappers allows you to do operations directly on this matrix,
- # without having to convert back to numpy
- dense_matrix_eigen_2 = dense_matrix_eigen * dense_matrix_eigen
- # You can also inspect the data without converting it ...
- print("Eigen Matrix: \n", dense_matrix_eigen_2, "\n", sep='')
- # and access single elements
- print("Eigen Matrix(0,0): ", dense_matrix_eigen_2[0,0], "\n")
- # To convert it back to a numpy array, use the helper function e2p
- dense_matrix_2 = e2p(dense_matrix_eigen_2)
- print("Numpy Array: \n", dense_matrix_2, "\n", sep='')
- ############# Sparse Matrix Types #############
- # Sparse matrices are handled in a very similar way
- # 2 types are supported by the wrappers: float64 and int64
- sparse_matrix = sparse.rand(10, 10, 0.1)
- # To convert to the eigen forma use p2e
- sparse_matrix_eigen = p2e(sparse_matrix)
- # They can directly be used plotted or used in computations
- print("Sparse matrix Eigen: ", sparse_matrix_eigen, sep='')
- # And converted back with e2p
- sparse_matrix_2 = e2p(sparse_matrix_eigen)
- print("Sparse matrix Numpy: ", sparse_matrix_2.todense(), sep='')
|