- •Введение
- •Лабораторная работа ип1 Знакомство с Matlab
- •1. Рабочая среда Matlab
- •2. Данные Matlab
- •Типы данных
- •Числовые константы
- •Символьные константы
- •Переменные
- •3. Выражения
- •3.1. Арифметические выражения
- •3.2. Логические выражения
- •3.3. Порядок вычисления выражений
- •4. Сообщения об ошибках и исправление ошибок
- •5. Завершение вычислений
- •6. Завершение работы с системой
- •7. Резюме
- •8. Контрольные вопросы
- •9. Индивидуальные задания
- •Лабораторная работа ип2 работа с матрицами в matlab
- •1. Общие сведения
- •2. Одномерные массивы – векторы
- •3. Двумерные массивы – матрицы
- •4. Использование двоеточия
- •4.1. Автозаполнение
- •4.2. Индексация
- •5. Поэлементные и матричные операции
- •6. Стандартные функции для работы с матрицами
- •7. Логическое индексирование
- •8. Контрольные вопросы
- •9. Индивидуальные задания
- •10. Упражнения
- •2. Диалоговый ввод/вывод
- •3. Управление последовательностью исполнения операторов
- •3.1. Оператор условия if
- •3.2. Оператор переключения
- •3.3. Оператор цикла с определенным числом повторений
- •3.4. Оператор цикла с неопределенным числом повторений
- •4. Контрольные вопросы
- •5. Индивидуальные задания
- •Лабораторная работа ип4 визуализация данных в matlab
- •1. Общие сведения
- •2. Построение таблицы значений функции
- •3. Двумерная графика
- •3.1. Общие правила построения графиков
- •3.2. Оформление графиков
- •3.3. Построение графиков
- •3.4. Управление свойствами графиков
- •4. Трехмерная графика
- •4.1. Общие принципы построения трехмерных графиков
- •4.2. Построение трехмерных графиков
- •4.3. Управление свойствами трехмерных графиков
- •5. Контрольные вопросы
- •6. Индивидуальные задания
- •Лабораторная работа ип5 файл-функции
- •2. Описание m-функции
- •3. Обращение к m-функции
- •4. Параметры-функции
- •5. Разновидности m-функций
- •5.1. Подфункции
- •5.2. Вложенные функции
- •6. Контрольные вопросы
- •7. Индивидуальные задания
- •2. Аппроксимация
- •2.1. Моделирование полиномом по методу
- •2.2. Аппроксимация произвольной функцией
- •3. Интерполяция
- •3.1. Кусочная интерполяция
- •3.2. Кубические сплайны
- •3.3. Интерполяция произвольной нелинейной функцией
- •4. Контрольные вопросы
- •5. Индивидуальные задания
- •Лабораторная работа ип7 Вычисление функций разложением в ряд
- •1. Общие сведения
- •2. Индивидуальное задание
- •Лабораторная работа ип8 Решение нелинейных уравнений в среде Matlab
- •1. Общие сведения
- •2. Поиск корней полиномов
- •3. Решение одного нелинейного уравнения
- •4. Решение систем нелинейных уравнений
- •5. Контрольные вопросы
- •6. Индивидуальные задания
- •Лабораторная работа ип9 обмен данными с текстовым файлом
- •1. Общие сведения
- •2. Открытие файла
- •3. Запись в текстовый файл
- •3.1. Запись строковых значений
- •3.2. Запись числовых значений
- •4. Чтение из текстового файла
- •4.1. Последовательное чтение строк
- •4.2. Последовательное чтение нескольких символов
- •4.3. Чтение чисел из текстового файла
- •4.4. Альтернативный доступ к текстовому файлу
- •5. Закрытие файла
- •6. Контрольные вопросы
- •7. Индивидуальные задания
- •Заключение
- •Список рекомендуемой литературы
- •Программирование в matlab
- •428015 Чебоксары, Московский просп., 15
3.2. Оператор переключения
Синтаксис оператора следующий:
switch выражение
case значение1
операторы1
case значение2
операторы2
otherwise
операторы3
end
Оператор выполняет ветвления, в зависимости от значения некоторого выражения выражение. Вычисляемое выражение может быть скаляром или строкой. Количество ветвей case произвольное. Каждая ветвь состоит из слова case, за которым на одной строке следует возможное значение выражения. Последующие строки ветви содержат операторы, которые выполняются для данного значения выражения. Данная ветвь case продолжается до тех пор, пока не встретится следующий оператор case или оператор otherwise. Ветвь otherwise содержит операторы, которые выполняются, если значение выражение оказалось не обработанным ни одной из ветвей case. Блок переключателя завершается оператором end.
Пример
sym=input('введите символ ', 's');
switch sym
case '!'
disp(' это восклицательный знак')
case '?'
disp('это вопросительный знак')
case '.'
disp('это точка')
case ','
disp('это запятая')
otherwise
disp('это не "!", "?" не "." и не ","')
end
В этом примере проверяется, является ли введенный с клавиатуры символ вопросительным или восклицательным знаком, точкой или запятой.
Оператор switch работает следующим образом: вычисляется выражение; полученное значение последовательно сверху вниз сравнивается со значениями ветвей case; если для какой-то j-й ветви case указанное в ней значениеj равно выражение, то выполняются операторыj; если выражение не совпало ни с одним из значениеj, то выполняются операторы otherwise-ветви. Оtherwise-ветвь переключателя может отсутствовать. Тогда при несовпадении значения выражения ни с одним из значениеj никакие специальные действия выполняться не будут. Оператор switch может использовать множественное значение в ветви case, если значение для этой ветви записано в виде массива ячеек (в фигурных скобках). Например
switch var
case 1
disp('1')
case {2, 3, 4}
disp('2 или 3 или 4')
case 5
disp('5')
otherwise
disp('не от 1 до 5')
end
3.3. Оператор цикла с определенным числом повторений
Синтаксис оператора следующий:
for ПараметрЦикла = НачЗнач:Приращение:КонЗнач
операторы
end
При работе цикла ПарметрЦикла (счетчик) пробегает все возможные значения из диапазона от НачЗнач до КонЗнач с шагом Приращение. При каждом проходе по циклу выполняются операторы, составляющие тело цикла. По умолчанию Приращение равно 1. Можно задавать любое приращение, в том числе и отрицательное. Для положительных значений выполнение цикла завершается, когда значение параметра цикла превышает КонЗнач; для отрицательных приращений выполнение завершается, когда значение становится меньше чем КонЗнач.
Пример. Числа Фибоначчи определяются формулами . Напечатать K первых чисел Фибоначчи.
K=input('Задайте количество чисел Фибоначчи ');
disp([num2str(K) ' первых чисел Фибоначчи: '])
switch K
case 1
disp(1)
case 2
disp([1; 1])
otherwise
FibPred=1;
FibTek=1;
disp([1; 1])
for n=3:K
FibSled =FibTek + FibPred;
disp(FibSled)
FibPred=FibTek;
FibTek=FibSled;
end
end
При задании значения K = 6 получим следующий результат:
6 первых чисел Фибоначчи:
1
1
2
3
5
8
Один или несколько операторов for могут быть вложены друг в друга. В качестве переменной цикла for могут использоваться и массивы.
A=[2 3;-4 5; 12 0]
S=0;
for i = A
S=S+i;
end
disp('S=')
disp(S)
Переменная цикла i определяется как вектор A(:, k). Для первого шага цикла k равно 1 (перебираются все строки первого столбца матрицы); для второго – 2, и так далее, пока k не достигнет значения n. То есть цикл выполняется столько раз, сколько столбцов в матрице A. Для каждого шага i – это вектор, содержащий один из столбцов массива A. В результате работы этой программы сформируется вектор-столбец S из трех чисел – построчных сумм элементов матрицы А
A =
2 3
-4 5
12 0
S=
5
1
12