- •Информатика
- •1. Цели работы
- •Теоретические сведения
- •2.1. Введение
- •2.2. . Интерфейс среды matlab
- •2.3. Задания массивов в среде matlab
- •2.4. Стандартные матрицы
- •2.5. Операции над матрицами
- •2.6. Операторы языка matlab
- •2.7. Синтаксис операторов switch и try…except
- •2.8. Использование функций и скриптов
- •3. Выполнение работы
- •4. Контрольные задания
- •5. Задания для самостоятельной работы
- •6. СПисок рекомендуемой литературы
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), то система выдаст сообщение об ошибке, поскольку скрипт предназначен только для обработки определенного набора переменных, а в функции можно передавать те значения параметров, которые необходимы для решения конкретной задачи.