- •Раздел 1 Основные понятия среды matlab
- •1. Начало работы в среде matlab
- •1.1. Характеристика среды matlab
- •1.2. Общие положения и правила работы в среде matlab
- •1.3. Работа в командном окне
- •1.4. Правила и особенности ввода математических выражений
- •1.5. Сохранение содержимого рабочего окна
- •2.2. Типы данных. Описание основных типов
- •2 Системные переменные и типы данных
- •2.1 Системные переменные
- •2.3. Комплексные числа
- •2.4. Символьные переменные
- •2.5. Массивы
- •2.5.1 Задание массивов
- •2.5.2 Доступ к элементам массивов
- •2.5.3 Функции обработки массивов
- •2.6 Тип данных структура (struct)
- •2.6.1 Задание структур
- •2.6.2 Функции обработки структур
- •2.7 Тип данных ячейка (сell)
- •2.8 Функции определения типов
- •2.9 Функции для работы со значениями даты и времени
- •2.10 Функции преобразования типов
- •3. Основные операции и математические функции matlab
- •3.1 Основные арифметические операции
- •3.2 Основные элементарные функции
- •Help имя_функции,
- •3.3 Операции отношения и логические операции
- •4 Операторы среды matlab
- •4.1 Условный оператор if
- •4.2 Условный оператор switch
- •4.3 Реализация циклических процессов
- •4.3.1 Оператор цикла while
- •4.3.2 Оператор цикла for
- •Pause – останавливает выполнение программы до момента нажатия любой клавиши на клавиатуре; pause(n) – останавливает выполнение программы на n секунд;
- •Примеры.
- •Как и в случае сценариев, к подпрограмме функции можно обратиться по имени, более того функции могут быть компонентами математических выражений и операндов, а также параметрами других функций.
- •5.4 Создание подпрограмм с переменным списком входных и выходных параметров
- •5.5 Локальные и глобальные переменные
- •5.6 Созданий функций пользователя и указателей на функции. Функции как аргументы функций.
- •5.8 Сообщения об ошибках
- •6 Ввод данных и работа с файлами
- •6.1 Использование рабочей области Workspace
- •6.2 Чтение и запись неформатированных файлов
- •6. 3 Работа с текстовыми и бинарными файлами
- •6.3.1 Команды открытия и закрытия файлов
- •6.3.2 Команды чтения и записи fread и fwrite
- •6.4 Операции над форматированными файлами
4.3.2 Оператор цикла for
Часто при организации цикла требуется перебирать значение счетчика в заданном диапазоне значений с заданным шагом изменения. Для реализации таких задач существует оператор цикла for, который позволяет проще и нагляднее реализовывать цикл со счетчиком.
Синтаксис.
for <счетчик> = <начальное значение>:<шаг>:<конечное значение>
<операторы цикла>
end
Примеры.
Поиск максимального значения элемента в векторе
>> a = [3 6 5 3 6 9 5 3 1 0];
>> m = a(1); % текущее максимальное значение
>> for i=1:length(a) % цикл от 1 до конца вектора с шагом 1 (по умолчанию)
if m < a(i) % если a(i) > m,
m = a(i); % то m = a(i)
end
end % конец цикла for
>> disp(m); % вывод максимального значения
Смещения элементов вектора вправо, т.е. предпоследний элемент ставится на место последнего, следующий – на место предпоследнего, и т.д. до первого элемента:
>> a = [3 6 7 2 8 9 5 3 1 0];
>> for i=length(a):-1:2 % цикл от 10 до 2 с шагом -1
b(i)=a(i-1); % смещаем элементы вектора а
end % конец цикла for
>> disp([a; b])
3 6 7 2 8 9 5 3 1 0
0 3 6 7 2 8 9 5 3 1
В некоторых задачах, где обычно используется цикл for, благодаря матричному представлению данных в среде MATLAB его использование не нужно. Таким примером может быть задача табулирования функции. Для ее реализации достаточно задать аргумент в виде диапазона и описать функцию:
>> x=0:0.5:5;
>> y=20*sin(x)./x;
>> disp([x;y])
0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000 4.5000 5.0000
NaN 19.1770 16.8294 13.2999 9.0930 4.7878 0.9408 -2.0045 -3.7840 -4.3446 -3.8357
Результатом выполнения команд будет две строки. Где первая строка соответствует значениям х, а вторая – y.
4.4 Команды организации диалога
Для реализации возможности создания удобного интерфейса пользователя в среде MATLAB предусмотрены следующие команды:
disp(), sprintf() – вывод значений и текста на экран;
input(), sscanf() – ввод данных с клавиатуры;
keyboard, pause – приостановление выполнения программы;
menu() – создание меню пользователя.
Синтаксис.
disp(X) – выводит на экран значения переменной Х (Х может быть векторной величиной);
[s, errmsg] = sprintf(format, A, ...) – выводит значение массива А согласно заданому формату format в строковую переменную s и выполняет контроль, формируя сообщение об ошибке errmsg, если ошибки не произошло, то errmsg – пустой массив. Функция удобна для вывода значений с пояснительным текстом. (правила задания параметра format приведены в Приложении 1);
user_entry = input('prompt') – выводит символьную строку prompt на экран и считывает значение с клавиатуры в переменную user_entry ;
user_entry = input('prompt', 's') – выводит символьную строку prompt на экран и считывает значение с клавиатуры как символьную строку;
А = sscanf (s,format) – считывает данные из символьной переменной s, преобразует их согласно значению format и формируе основе этих данных матрицу А;
А = sscanf(s,format,size) – считывает количество данных, определенное параметром size, и преобразует их согласно строке format. Параметр size допуксае следующие значения
n – чтение n элементов в вектор-столбец;
inf – чтение элементов до конца символьной переменной и помещение их в вектор-столбец, содержащий такое же количество элементов, как и в строковой переменной;
[m.n] – считывает столько элементов, сколько требуется для заполнения матрицы размера тхп. Заполнение происходит по столбцам. Величина n может принимать значение Inf.
[A,count,errmsg,nextindex] = sscanf(...) – считывает данные из символьной переменной s, преобразует их согласно значению format и возвращает в матрицу А. Параметр count – возвращает число успешно считанных элементов; errmsg – возвращает сообщение об ошибки, если ошибка произошла, и пустую строку в противном случае; nextindex – выходной аргумент, который содержит число, на единицу большее, чем количество символов в сроке s;
keyboard – как правило используется в М-файлах. Останавливает выполнение программы и передает управление клавиатуре до введения команды return. Команда удобна для изменени значений переменных в процессе выполнения программы и для отладки;
