code: def _dython_cramers_v_matrix(
      matrix, bias_correction, nan_strategy, nan_replace_value
  ):
      num_variables = matrix.shape[1]
      cramers_v_matrix_value = torch.ones(num_variables, num_variables)
      for i, j in itertools.combinations(range(num_variables), 2):
          x, y = matrix[:, i], matrix[:, j]
          cramers_v_matrix_value[i, j] = cramers_v_matrix_value[
              j, i
          ] = _dython_cramers_v(
              x, y, bias_correction, nan_strategy, nan_replace_value
          )
      return cramers_v_matrix_value
  
file_path: torchmetrics/tests/unittests/nominal/test_cramers.py
imports: import itertools
  import operator
  from functools import partial
  import pytest
  import torch
  from dython.nominal import cramers_v
  from lightning_utilities.core.imports import compare_version
  from torchmetrics.functional.nominal.cramers import cramers_v, cramers_v_matrix
  from torchmetrics.nominal.cramers import CramersV
  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_cramers_v_matrix(matrix, bias_correction, nan_strategy, nan_replace_value) and returns: cramers_v_matrix_value