Компилятор MATLAB оборачивает ваш m-код и отправляет его во время выполнения MATLAB. Таким образом, производительность, которую вы видите в MATLAB, должна соответствовать производительности, которую вы видите с компилятором.
Для других ответов полезно векторизовать ваш код. Но MATLAB JIT довольно хорош в наши дни, и многие вещи работают примерно так же хорошо, как векторизованные или нет. Это не значит, что от векторизации не может быть выигрыша в производительности, это просто не та волшебная пуля, которой она когда-то была. Единственный способ действительно сказать, это использовать профилировщик, чтобы узнать, где ваш код видит узкие места. Часто есть места, где вы можете выполнить локальный рефакторинг, чтобы реально улучшить производительность вашего кода.
Существует несколько других аппаратных подходов, которые вы можете использовать для повышения производительности. Во-первых, большая часть подсистемы линейной алгебры является многопоточной. Вы можете убедиться, что вы включили это в своих предпочтениях, если вы работаете на многоядерной или многопроцессорной платформе. Во-вторых, вы можете использовать набор инструментов для параллельных вычислений, чтобы использовать преимущества нескольких процессоров. Наконец, если вы являетесь пользователем Simulink, вы можете использовать emlmex для компиляции m-кода в c. Это особенно эффективно для работы с фиксированной точкой.