code: def export() -> None:
      node = onnx.helper.make_node(
          "MatMul",
          inputs=["a", "b"],
          outputs=["c"],
      )
  
      # 2d
      a = np.random.randn(3, 4).astype(np.float32)
      b = np.random.randn(4, 3).astype(np.float32)
      c = np.matmul(a, b)
      expect(node, inputs=[a, b], outputs=[c], name="test_matmul_2d")
  
      # 3d
      a = np.random.randn(2, 3, 4).astype(np.float32)
      b = np.random.randn(2, 4, 3).astype(np.float32)
      c = np.matmul(a, b)
      expect(node, inputs=[a, b], outputs=[c], name="test_matmul_3d")
  
      # 4d
      a = np.random.randn(1, 2, 3, 4).astype(np.float32)
      b = np.random.randn(1, 2, 4, 3).astype(np.float32)
      c = np.matmul(a, b)
      expect(node, inputs=[a, b], outputs=[c], name="test_matmul_4d")
  
imports: import numpy
  import onnx
  from onnx.backend.test.case.base import Base
  from onnx.backend.test.case.node import expect
label_desc: Use image node_id 1 for calling the MatMul obj's underlying member method code with example usage: obj.export() without return types