Составители:
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
Страницы
- « первая
- ‹ предыдущая
- …
- 107
- 108
- 109
- 110
- 111
- …
- следующая ›
- последняя »
