Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Л_1.doc
Скачиваний:
14
Добавлен:
18.03.2016
Размер:
834.05 Кб
Скачать

2.6. Операторы языка matlab

Поскольку оператор if и циклы используются совместно, то имеет смысл привести сначала их синтаксис (рис.9), а затем несколько примеров.

Рис.9. Операторы: if и циклы for и while

В задачах сжатия данных важным этапом является преобразование двумерных массивов в одномерные с последующей передачей на блок кодирования. Пример демонстрирует использование циклов for и while. Вот последовательность команд:

>> k=1;

>> p = size(A1,1);

>> while k<=p

for i=1:p

for j=1:p

S(k)=A(i,j);

k=k+1;

end;

end;

end;

Введите код в окно команд. Прочитайте, введите >>clc, выполнив очистку окна команд.

В результате в окне рабочего пространства появятся переменные, в которых записаны результаты вычислений. Нам важна переменная S. Откройте ее. Там и записан преобразованный массив.

Обратим внимание на особенности кода: каждый цикл должен закрываться оператором «end», поэтому при написании программ важно соблюдать стиль программирования.

2.7. Синтаксис операторов switch и try…except

Приведем синтаксис операторов switch и try…except (рис.10).

Рис.10. Синтаксис операторов switch и try…except

Switch используется для выбора того или иного варианта выполнения кода, а try…except – для обработки ошибок. Приведем примеры.

>> dlgTitle='Input data';

prompt={'Enter the matrix size:'};

answer=inputdlg(prompt,dlgTitle);

n = str2double(answer(1));

switch n

case n==1

M = ones(n)

case n==2

M = eye(n)

case n==3

M=zeros(n)

otherwise

M = eye(n)'

end;

Например, при n=2 получим следующий результат (рис.11).

Рис.11. Пример выполнения оператора switch

Скопируйте код вниз (выделить фрагмент и перетащить мышью) и введите другое значение n. Посмотрите результат. Приведем пример действия оператора try…except:

>> try

for i=1:n

s=s+1;

end

catch

s1=sin(s);

end;

Переменная n при этом не определена, поэтому оператор анализирует первую половину оператора ( try…end), определяет, что записано неправильное условие, и выполняет вторую часть оператора(после catch).Перед тем как перейти к рассмотрению скриптов и функций, необходимо привести пример использования оператора break. Смысл ясен из следующего фрагмента программы (выполнение программы прекращается, когда дошли до ячейки с номером 5). Введите код и посмотрите результат.

>>for i=1:length(A)

if i==5

break;

else

S(i)=A(i);

end;

end;

2.8. Использование функций и скриптов

В среде MATLAB можно использовать встроенные функции (sin, cos, sum), функции из пакетов (рассмотрим в процессе изучения дальнейших тем курса), а также писать свои функции. В функцию передаются параметры, она может иметь как входные, так и выходные параметры (если результат функции необходимо присвоить другой переменной); все параметры должны быть прописаны. При создании скриптов не используются параметры. Приведем пример. Напишем функцию и скрипт, выполняющие преобразование двумерного массива в одномерный. И посмотрим отличие.

Рассмотрим сначала создании функции функция.

Необходимо вызвать редактор функций (File New M-File либо нажать нужный значок на панели инструментов) (рис.12).

Рис.12. Пример функции – преобразование двумерного массива в одномерный

Теперь можно вызвать функцию в окне команд (рис.13).

Рис.13. Вызов функции, выполняющей преобразование двумерного массива в одномерный, переменные и фрагмент массива S

В заключение приведем скрипт, выполняющий аналогичные действия, и посмотрим результат. Чтобы создать скрипт, также вызывают редактор M-файлов. Одно из отличий (слово «function») не пишем (рис.14).

Рис.14. Пример работы скрипта – аналог функции преобразования массива

Если мы удалим или переименуем переменную, связанную с работой скрипта (например, исходный массив A), то система выдаст сообщение об ошибке, поскольку скрипт предназначен только для обработки определенного набора переменных, а в функции можно передавать те значения параметров, которые необходимы для решения конкретной задачи.