I am assuming you have a single layer that contains the 400 polygons. Each of these polygons should have a unique "ID"
field for this to work. This could be an integer, or if each of the polygons has a unique name then that would be fine too.
The first step is to use the "Split vector layer" tool from the Processing Toolbox (Ctrl+Alt+T) with the input being your 400 polygon layer and your unique "ID"
field as the one that meets the criteria explained above. You then need to save this into a directory of your choosing. You can delete these after all this if you want to probably just create a folder somewhere that is easy to remember on your operating system.
Next, you want to use the "Overlap analysis" tool also found in the Processing Toolbox. This can only be found in QGIS versions 3.8 and later. You want your original 400 polygon layer to be your input layer. For the overlap layers, you need to add the directory where you just saved all of the individual layers in the previous step. This will create an output layer that is a replica of the original, but it will have appended new fields to the attribute table for each of the overlay layers. This has the overlap percentage for each feature to each feature. So it is essentially a matrix.