MATLAB can generate C code for ARM Cortex-M

  1. Matlab code is compact, specially designed to work with matrices and vectors. You do not have to use "for loops" or learn how to utilize C libraries where a matrix multiplication is done by calling a function defined like this:
    "void simpleProduct(const real32_T a[5], const real32_T b[10], real32_T c[2])".
    In Matlab you just write c=a*b which looks like the ordinary mathematical language.

I was talking about C++ packages, which have operator overloading, so you can indeed write code like:
A = B * C;
where A, B, and C have been defined to be matrices of some sort.
Although even with C, you wouldn't necessarily need to see the ugliness of the underlying code, and could do
A = mat_mul(B, C);

Your other points are harder to counter.

On the minus side, MatLab is expensive for students, and prohibitively expensive for non-students (~$2000.) (which is not including Simulink ($3k) or any of the other add-on features (about $1k each, for the ones that listed prices...) (I might be in trouble now; you're supposed to log in before you can get pricing info.)