I'm not sure how the search for Compiler works for the mex command.
From 5 minutes research I did I came to the conclusion it works as following:
- It goes through each xml file in C:\Program Files\MATLAB\R2018b\bin\win64\mexopts.
- Each xml file define places to look and priority (In case you have more than 1).
- The search goes by priority and set the compiler it finds with the highest priority among all those found.
Once it finds a compiler it creates an xml file named C:\Users\<UserName>\AppData\Roaming\MathWorks\MATLAB\R2018b\mex_C_win64.xml.
Now, in MATLAB R2018b and probably R2019a you have files searching for VS 2017 but not for 2019.
I took msvc2017.xml and msvcpp2017.xml renamed them to msvc2019.xml and msvcpp2019.xml. I edited their content for what I think would be right for Visual Studio 2019. Basically updating version number from 15.0 to 16.0.
I attached a zip file witho those to the answer.
I think if you copy them into C:\Program Files\MATLAB\R2018b\bin\win64\mexopts\ and run mex -v -setup it should work.