I have a list of associations keyed by real and imaginary numbers, like so:

```
matrix = {
   {<|"r" -> 0.368252, "i" -> 0.0199587|>, 
    <|"r" -> -0.461644, "i" -> 0.109868|>, 
    <|"r" -> -0.216081, "i" -> 0.562557|>, 
    <|"r" -> -0.479881, "i" -> -0.212978|>}, 

   {<|"r" -> 0.105028, "i" -> 0.632264|>, 
    <|"r" -> 0.116589, "i" -> -0.490063|>, 
    <|"r" -> 0.463378, "i" -> 0.231656|>,
    <|"r" -> -0.148665, "i" -> 0.212065|>},

   {<|"r" -> 0.463253, "i" -> 0.201161|>,
    <|"r" -> 0.460547, "i" -> 0.397829|>,
    <|"r" -> 0.222257, "i" -> 0.0129121|>,
    <|"r" -> 0.168641, "i" -> -0.544568|>},

   {<|"r" -> 0.255221, "i" -> -0.364687|>,
    <|"r" -> 0.191895, "i" -> -0.337437|>,
    <|"r" -> -0.12278, "i" -> 0.551195|>,
    <|"r" -> 0.560485, "i" -> 0.134702|>}
}

```

Given this, I can write 

```
testmatrix = Join[Values[matrix], 2]`

```

to get a matrix, but it is a matrix of tuples. How can I get the complex number defined in each `<|r -> Re[z], i -> Im[z]|>` rather than the tuples?