Моделирование в системе MATLAB. Часть 1. Основы работы в MATLAB. Терёхин В.В. - 109 стр.

UptoLike

Составители: 

107
Векторизация циклов
Под векторизацией понимается преобразование циклов for и
while к эквивалентным векторным или матричным выражениям. При
векторизации алгоритма ускоряется выполнение M-файла.
Пример. Вот один из способов вычислить 1001 значение функции
синуса на интервале [0 10], используя оператор цикла:
i = 0;
for t = 0:.01:10
i = i + 1;
y(i) = sin(t);
end
Эквивалентная векторизованная форма имеет вид
t = 0:.01:10;
y = sin(t);
В этом случае вычисления выполняются намного
быстрее, и
такой подход в системе MATLAB является предпочтительным. Время
выполнения этих М-файлов можно оценить, используя команды tic и
toc.
Пример. Функция repmat - формирование массива из частей -
использует преимущество векторизации. Она имеет три входных ар-
гумента: массив A, количество строк М и столбцов N для вновь соз-
даваемого массива. Функция
repmat возвращает массив B , который
использует массив A в качестве основы для построения блочной мат-
рицы с количеством блоков MxN:
A = [1 2 3; 4 5 6];
B = repmat(A, 2, 3);
B =
1 2 3 1 2 3 1 2 3
4 5 6 4 5 6 4 5 6
1 2 3 1 2 3 1 2 3
4 5 6 4 5 6 4 5 6
Функция repmat использует векторное представление для
индексов, указывающих размещение блоков:
function B = repmat(A, M, N)
if nargin 2
error('Требуется, по крайней мере, 2 входа.')
elseif nargin == 2
N = M;
end
                            Векторизация циклов
         Под векторизацией понимается преобразование циклов for и
while к эквивалентным векторным или матричным выражениям. При
векторизации алгоритма ускоряется выполнение M-файла.
Пример. Вот один из способов вычислить 1001 значение функции
синуса на интервале [0 10], используя оператор цикла:
          i = 0;
          for t = 0:.01:10
                i = i + 1;
             y(i) = sin(t);
          end

Эквивалентная векторизованная форма имеет вид
         t = 0:.01:10;
         y = sin(t);
       В этом случае вычисления выполняются намного быстрее, и
такой подход в системе MATLAB является предпочтительным. Время
выполнения этих М-файлов можно оценить, используя команды tic и
toc.
       Пример. Функция repmat - формирование массива из частей -
использует преимущество векторизации. Она имеет три входных ар-
гумента: массив A, количество строк М и столбцов N для вновь соз-
даваемого массива. Функция repmat возвращает массив B , который
использует массив A в качестве основы для построения блочной мат-
рицы с количеством блоков MxN:
         A = [1 2 3; 4 5 6];
         B = repmat(A, 2, 3);
         B=
          1 2 3 1 2 3 1 2 3
          4 5 6 4 5 6 4 5 6
          1 2 3 1 2 3 1 2 3
          4 5 6 4 5 6 4 5 6

       Функция repmat использует векторное представление для
индексов, указывающих размещение блоков:
        function B = repmat(A, M, N)
        if nargin 2
       error('Требуется, по крайней мере, 2 входа.')
       elseif nargin == 2
       N = M;
       end


                                                               107