code: def _dython_theils_u_matrix(matrix, nan_strategy, nan_replace_value):
      num_variables = matrix.shape[1]
      theils_u_matrix_value = torch.ones(num_variables, num_variables)
      for i, j in itertools.combinations(range(num_variables), 2):
          x, y = matrix[:, i], matrix[:, j]
          theils_u_matrix_value[i, j] = _dython_theils_u(
              x, y, nan_strategy, nan_replace_value
          )
          theils_u_matrix_value[j, i] = _dython_theils_u(
              y, x, nan_strategy, nan_replace_value
          )
      return theils_u_matrix_value
  
file_path: torchmetrics/tests/unittests/nominal/test_theils_u.py
imports: import itertools
  import operator
  from functools import partial
  import pytest
  import torch
  from dython.nominal import theils_u
  from lightning_utilities.core.imports import compare_version
  from torchmetrics.functional.nominal.theils_u import theils_u, theils_u_matrix
  from torchmetrics.nominal import TheilsU
  from unittests import BATCH_SIZE, NUM_BATCHES, _Input
  from unittests.helpers.testers import MetricTester
label_desc: Use image node_id 3 for calling a global function with example usage: _dython_theils_u_matrix(matrix, nan_strategy, nan_replace_value) and returns: theils_u_matrix_value