If isempty(a)
d
= 1;
return
else
…
end
В данном примере,
если матрица A
пустая, будет выведено значение 1, после
чего управление будет передано в блок
else…end.
3. Векторизация циклов
MATLAB —
это язык, специально разработанный для
обработки массивов и выполнения матричных
операций. Всюду, где это возможно,
пользователь должен учитывать это
обстоятельство.
Под
векторизацией понимается преобразование
циклов
for
и while
к эквивалентным векторным или матричным
выражениям. При векторизации алгоритма
ускоряется выполнение M-файла.
Пример
1.
Один
из способов вычислить 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);
Пример
2. Программа
создания таблицы логарифмов:
x
= 0;
for
k = 1:1001
y(k)
= log10(x);
x
= x
+ .01;
end;
Векторизованная
версия этого кода выглядит следующим
образом:
x
= 0: .10:10;
y
= log10(x);
Для более сложных
программ возможности векторизации не
так очевидны. Однако, когда важна
скорость, вы должны всегда искать способы
векторизации вашего алгоритма.
13