code: def matrix_undirected_weighted(user, interaction=None):
      
      matrix = _interaction_matrix(user, interaction=interaction)
      result = [[0 for _ in range(len(matrix))] for _ in range(len(matrix))]
  
      for a in range(len(matrix)):
          for b in range(len(matrix)):
              if a != b and matrix[a][b] and matrix[b][a]:
                  result[a][b] = matrix[a][b] + matrix[b][a]
              elif matrix[a][b] is None or matrix[b][a] is None:
                  result[a][b] = None
              else:
                  result[a][b] = 0
  
      return result
docs: Returns an undirected, weighted matrix for call, text and call duration
      where an edge exists if the relationship is reciprocated.