I am assuming that you want to update the plot generated without closing the GUI and without a new plot being created.
A new graph is created each time because of the following line in the funciton physEngineGUI1:
ax = axes(f, 'Units', 'Normalized', 'position', [0.32, 0.12, 0.65, 0.80]);
A new axes object is created each time the function "physEngineGUi1" is called (It is called on every callback). Similarly the other UI objects are also created more than once - this can be confirmed by executing
on the MATLAB command line to see the objects present in the figure.
In order to prevent this without closing and reopening the figure, you may want to look into modifying your code so that the axes and other objects are created only once and not every time a button is pressed.
Hope this helps