{"record":{"id":"da095440501a347c","repo":"rohitg00/ai-engineering-from-scratch","slug":"determinant-only-defined-for-square-matrices","errorCode":null,"errorMessage":"Determinant only defined for square matrices","messagePattern":"Determinant only defined for square matrices","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"phases/01-math-foundations/02-vectors-matrices-operations/code/matrices.py","lineNumber":121,"sourceCode":"            for i in range(self.rows)\n        ])\n\n    def __matmul__(self, other):\n        return self.matmul(other)\n\n    def transpose(self):\n        return Matrix([\n            [self.data[j][i] for j in range(self.rows)]\n            for i in range(self.cols)\n        ])\n\n    @property\n    def T(self):\n        return self.transpose()\n\n    def determinant(self):\n        if self.rows != self.cols:\n            raise ValueError(\"Determinant only defined for square matrices\")\n        if self.shape == (1, 1):\n            return self.data[0][0]\n        if self.shape == (2, 2):\n            return self.data[0][0] * self.data[1][1] - self.data[0][1] * self.data[1][0]\n        det = 0\n        for j in range(self.cols):\n            minor = Matrix([\n                [self.data[i][k] for k in range(self.cols) if k != j]\n                for i in range(1, self.rows)\n            ])\n            det += ((-1) ** j) * self.data[0][j] * minor.determinant()\n        return det\n\n    def inverse_2x2(self):\n        if self.shape != (2, 2):\n            raise ValueError(\"This method only works for 2x2 matrices\")\n        det = self.determinant()\n        if abs(det) < 1e-10:","sourceCodeStart":103,"sourceCodeEnd":139,"githubUrl":"https://github.com/rohitg00/ai-engineering-from-scratch/blob/39ea8a1c6d0b61f071226eff7ede4d4105fed820/phases/01-math-foundations/02-vectors-matrices-operations/code/matrices.py#L103-L139","documentation":"Error \"Determinant only defined for square matrices\" thrown in rohitg00/ai-engineering-from-scratch.","triggerScenarios":"Thrown at phases/01-math-foundations/02-vectors-matrices-operations/code/matrices.py:121 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"39ea8a1c6d0b61f071226eff7ede4d4105fed820","analyzedAt":"2026-08-26T03:13:46.626Z","schemaVersion":2},"datasetVersion":"2026-08-26T07:17:17.940Z"}