Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Matlab / Лекция 16.docx
Скачиваний:
142
Добавлен:
19.03.2016
Размер:
47.55 Кб
Скачать

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

Соседние файлы в папке Matlab