Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

О рациональной техники программирования в MATLAB.

Поиск

MATLAB интерпретирует команды, записанные в М-файлах, в машинный код и последовательно выполняет их. Процесс интерпретации занимает много времени в том случае, когда алгоритм обработки большого объема данных содержит циклы, поскольку каждая строка цикла интерпретируется столько раз, сколько выполняется цикл. Следовательно, при разработке приложений MATLAB необходимо свести использование циклов к минимуму. Эффективность приложений также определяется распределением памяти под создаваемые большие массивы.

clear all tic

x=0:2*pi/10000:2*pi; y=exp(-x.^2).*cos(x); toc

clear all tic

for i=1:10001 x(i)=2*pi/10000*(i-1); y(i)=exp(-x(i)^2)*cos(x(i)); end

toc

Работа этой файл-программы состоит из двух частей. Первая часть начинается с вызова функции tic - таймера, затем вычисляются значения двух массивов x и y, и вызывается функция toc – вывести на экран время в секундах, прошедшее с момента включения таймера.

Лекция 3

Вторая часть файл-программы выполняет такие же действия начинается вновь с включения таймера. Затем в цикле for вычисляются значения массивов x и y. Обе части файл-программы делают практически одно и тоже, но используя разные операторы. После запуска файл-программы на моем компьютере я получил, что время выполнения первой части 0.016 секунды, а второй - 1.36 секунды. Хорошо известный в среде программистов на Matlab результат - использование циклов снижает быстродействие программы более чем на два порядка.

Старайтесь свести использование циклов в программах к минимуму. Иногда бывает полезно делать вставки на С, С++ или Fortran в тех местах программы, где циклы существенно снижают быстродействие.

 



Поделиться:


Последнее изменение этой страницы: 2024-06-17; просмотров: 5; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.147.42.34 (0.005 с.)