это MATLAB, который работает медленно на вашем компьютере или, скорее, программы, которые вы написали в MATLAB?
MATLAB интенсивно использует динамическое выделение и перераспределение памяти; изменение размера матрицы или массива может быть очень медленным и недетерминированным; если матрица или массив растет, выделяется новая память и существующие данные копируются в новую память перед удалением старой копии. Вы можете избежать этого трэша памяти, предварительно выделив такие массивы: например, это код:
x = 0;
for k = 2:1000
x(k) = x(k-1) + 5;
end
причины x
для изменения размера на каждой итерации и будет работать очень медленно. Для сравнения следующий код:
x = zeros(1, 1000);
for k = 2:1000
x(k) = x(k-1) + 5;
end
предварительно выделяет массив таким образом, что изменение размера не происходит и будет работать значительно быстрее.
сайт MathWorks имеет всей страницы подробно этот и другие методы повышения производительности; страница охватывает следующее:
- Предварительное Выделение Массивов
- Использование Распределенных Массивы для больших наборов данных
- по возможности замените на parfor (Parallel for)
- ограничение размера и сложности
- назначение переменных
- Использование Соответствующих Логических Операторов
- Перегрузка Встроенных Функций
- Функции, Как Правило, Быстрее, Чем Скрипты
- загрузка и сохранение быстрее, чем функции файлового ввода/вывода
- Векторизации Циклов
- Избегать Большого Фона Процессы
обратите внимание, что решение, которое вы предложили, последнее в списке MathWorks, вы должны сначала посмотреть на все другие моменты, если вы не делаете что-то явно ресурсоемкое, например, запуск виртуальной машины или воспроизведение видео высокой четкости одновременно с запуском MATLAB, глядя на другие запущенные процессы, вероятно, потеют мелкие вещи.