code: def _process_str_data(self, data, dtype):
      is_float = "." in data or "e" in data
      is_complex = "j" in data
      data = data.replace(",", " ")
      data = " ".join(data.split())
      data = data.split(";")
      for i, row in enumerate(data):
          row = row.strip().split(" ")
          data[i] = row
          for j, elem in enumerate(row):
              if is_complex:
                  data[i][j] = complex(elem)
              else:
                  data[i][j] = float(elem) if is_float else int(elem)
      if dtype is None:
          if is_complex:
              dtype = ivy.complex128
          else:
              dtype = ivy.float64 if is_float else ivy.int64
      self._data = ivy.array(data, dtype=dtype)
  
file_path: ivy/ivy/functional/frontends/numpy/matrix/methods.py
imports: import ivy
  from ivy.functional.frontends.numpy import argmax, any, ndarray
label_desc: Use image node_id 3 for calling the matrix obj's underlying member method code with example usage: obj._process_str_data(data, dtype) without return types