MATLAB is adept at the development of concise Finite Element (FE) routines, however it is commonly perceived to be too inefficient for high fidelity analysis. This paper aims to challenge this preconception by presenting two optimised FE codes for both continuous Galerkin (CG) and discontinuous Galerkin (DG) methods. Although this has previously been achieved for linear-elastic problems, no such optimised MATLAB script currently exists, which includes the effects of material non-linearity. To incorporate these elasto-plastic effects, the externally applied load is split into a discrete number of loadsteps. Equilibrium is determined at each loadstep between the externally applied load and the arising internal forces using the Newton–Raphson method. The optimisation of the scripts is primarily achieved using vectorised blocking algorithms, which minimise RAM-to-cache overheads and maximise cache reuse.The optimised codes yielded maximum speed gains of ×25.7 and ×10.1 when compared to the corresponding unoptimised scripts, for CG and DG respectively. It was identified that with increasing refinement of the mesh, the solver time begins to dominate the overall simulation time. This bottleneck has a greater disadvantage on the DG code, predominantly due the asymmetric nature of the global stiffness matrix. The implementation of an efficient solver would see further improvement to the overall run times, particularly for large problems.