1

I want to make a function in python which receives as arguments a matrix, a coordinate for the line and another coordinate for the column. For example: A matrix m=[[1,2,3], [4,5,6]] and the function will receive the arguments (m,0,0) It should return 1 (Which is the number located in position 0,0 in the matrix).

timgeb
  • 76,762
  • 20
  • 123
  • 145
Pmsmm
  • 352
  • 5
  • 17
  • 4
    1. This is a nested list, not a matrix. 2. To access the first element of the first element: `m[0][0]`. – timgeb Jan 06 '16 at 14:54
  • 1
    Indeed, sorry. What i meant to say is that that list represents a matrix. – Pmsmm Jan 06 '16 at 14:56
  • well, what about the trouble coding this task? What is the specific issue? – felipsmartins Jan 06 '16 at 15:00
  • I really can't do What I'm telling, the code I have so far is making me confuse because If I access position 0,0 it will return 1 but that is making me confuse because position 0,0 is position 0 in line which is 1 and position 0 in column wich is 4 that's why I'm confused honestly – Pmsmm Jan 06 '16 at 15:01
  • Also, it's pretty simple: `from_matrix = lambda matrix, a, b: matrix[a][b]: ` – felipsmartins Jan 06 '16 at 15:03
  • Why would you want a function for this? It'd be longer and slower than doing the indexing directly. – PM 2Ring Jan 06 '16 at 15:09

1 Answers1

6

Think of it as a list of lists rather than a "matrix", and the logic becomes more obvious. Matrix m has two elements: m[0] = [1, 2, 3] and m[1] = [4, 5, 6]. So accessing a single value from within those lists requires another index. For example, m[0][1] = 2.

def matrix(m, a, b):
    return m[a][b] # element b from list a in list m

If you really want to use a matrix, consider numpy.

Community
  • 1
  • 1
Erica
  • 2,399
  • 5
  • 26
  • 34
  • Thank you Erica, basicly two lines of code to solve a problem so simple that seemed complicated in my head. Thanks you once more – Pmsmm Jan 06 '16 at 15:28