Используйте Profiler, чтобы определить, какие функции вносят наибольший вклад во время выполнения. Вы можете повысить производительность, сокращая время выполнения алгоритмов и вычислений, где это возможно.
После оптимизации кода используйте следующие методы, чтобы уменьшить издержки, связанные с созданием и обновлением объектов.
Например, предположим, что выполняется печать массивов элементов 10 на 1000 с помощью myPlot функция:
function myPlot x = rand(10,1000); y = rand(10,1000); plot(x,y,'LineStyle','none','Marker','o','Color','b'); end
profile on myPlot profile viewer
При профилировании этого кода вы видите, что большинство времени тратится в myPlot функция:

Поскольку массивы x и y содержат 1000 столбцов данных, функция печати создает 1000 линейных объектов. В этом случае можно достичь тех же результатов путем создания одной строки с 10000 точками данных:
function myPlot x = rand(10,1000); y = rand(10,1000); % Pass x and y as 1-by-1000 vectors plot(x(:),y(:),'LineStyle','none','Marker','o','Color','b'); end
profile on myPlot profile viewer
Время создания объекта является основным фактором в этом случае:

Вы часто можете повысить скорость выполнения, понимая, как избежать или минимизировать изначально медленные операции. Сведения о том, как повысить производительность с помощью этого средства, см. в документации для profile функция.