   # How to achieve matrix sort in python?

+1 vote
114 views

I have a matrix of numbers representing the nodal points as follows:

``````Element No. Nodes

1 1 2 3 4
2 5 6 7 8
3 2 3 9 10
...........................
...........................
x 9 10 11 12
...........................
``````

so this is a matrix of numbers 4 x n
Elements 1 and 3 are neighbours (as they share nodes 2 3). Similarly elements 3 and x are neighbours (they share nodes 9 and 10). I want to sort the matrix in such a way all the elements are sequentially arranged. posted Aug 21, 2013

+1 vote

I think you want a topological sort algorithm. See here: http://en.wikipedia.org/wiki/Topological_sorting

Before that though you'll want to preprocess your matrix into a data structure that allows you to easily find the elements adjacent to any given element. A list of lists is one approach:

``````graph = [
, # nodes adjacent to element 1
[], # element 2
[1, x], # element 3
...
 # element x
]
`````` answer Aug 21, 2013
Similar Questions
+1 vote

I'm trying to multiply two matrices that has different size.

``````import numpy as np

a = np.random.randn(4, 3)
b = np.random.randn(4, 1)

print a
print b
``````

How should I multiply a and b so that the multipled matrix's size is 4*3?

I want to multiply matrix 'b' to each row of matrix 'a'.
So that if matrix a is
[[1, 2, 3],
[2, 3, 4]]
and b is
[,
]
a*b is
[[2, 4, 6],
[4, 6 ,8]]

Plz help me, if possible, plz use numpy

How to sort elements in a matrix that are above the principal diagonal using C/C++, diagonal elements are also included?

Does anyone know how to rotate a 2d matrix circularly for n times in suppose C language...? It would be a lot of help if you could explain with code.

Hint : Each time each row vector needs to be rotated one element to the right relative to the preceding row vector.

suppose

``````A(n,m) =
1 2 3
4 5 6
7 8 9

and

B(p, q) =
1 1
1 1
``````

What is best method to find min of square of difference of sub-matrices of A and B e.g.

sub-matrices of A =

``````1 2    |     2 3   |    4 5    |   5 6
3 4    |     5 6   |    7 8    |   8 9
``````

Difference of first sub-matrix of A with B =

``````(1-1)  (2-1)    = |     0 1
(3-1)  (4-1)      |     2 3
``````

sum of square of elements = `0*0 + 1*1 + 2*2 + 3*3 = 14`

similar steps for other sub-matrices of A

Please suggest looking for an alternate method or algorithm which has time complexity less than `O(n*m*p*q)`