М-файл сохранен как test1.m
⇐ ПредыдущаяСтр 2 из 2
Пример 2. Предыдущий пример оформить в виде М-функции с именем fun1. В дальнейшем будем предполагать, что М-файлы создаются в текстовом редакторе MATLAB. Поэтому программный код оформим в следующем виде:
Результат обращения к созданной М-функции из командного окна системы MATLAB: >> [P0,P1,P2,P3,P4,P5] = fun1(1.23, 2.34)
P0 = 0.0562 P1 = 0.1619 P2 = 0.2329 P3 = 0.2235 P4 = 0.1608 P5 = 0.0926
Задание 1 1. Создайте функцию, аргументами которой будут год и месяц вашего рождения, а возвращаемым значением был бы календарь заданного года и месяца. Обращение к созданной функции выполните из М-сценария, в котором задайте год и месяц своего рождения. 2. Напишите М-функцию, которая бы возвращала сумму элементов данной строки и данного столбца магического квадрата, размерность которого должна быть входным аргументом М-функции.
Пример 3. Написать М-функцию, которая содержит две подфункции. Одна подфункция служит для расчета суммы кубического корня заданного вектора вещественных чисел, другая для поэлементного перемножения двух матриц заданного размера. Программный код решения примера
Пример выполнения программы при обращении к М-функции fun3 из командной строки:
>> [s,c] = fun3([1, 27,-19683], [1,2;3,4], [6,7;8,9]) s = -23.0000 c = 6 14 24 36 Пример 4. Написать М-функцию, которая обеспечивает сложение векторов неизвестного заранее количества. В общем случае для решения этого примера требуется использование операторов цикла. Здесь будет показано, какие средства используются для определения переменного количество аргументов М-функции. Программный код решения примера для сложения трех векторов
Пример выполнения программы при обращении к М-функции funvar3 из командной строки: >> s = funvar4([1,2], [4,5], [6,7]) s = 11 14
При определении М-функции используется ключевое слово varargin, а при обращении к функции используются фактические параметры – векторы. Обращение к заданному по номеру вектору происходит через фигурные скобки, которые формируют массив ячеек – класс cell. Обычно код подобных М-функций содержит операторы цикла и условия, с которыми познакомимся в следующих лабораторных работах. Пример 5. Написать М-функцию, которая возвращает переменное количество измеряемых значений массива, если на вход функции подается массив заранее неизвестного размера и размерности. Для этого примера в общем случае требуется использование операторов цикла. Для демонстрации возможности переменного количества возвращаемых значений используем трехмерный массив размера 2´2´3.
Программный код решения примера
Пример выполнения программы: >> A = rand(3,4); B = randn(3,4); >> C(:,:,1) = A; C(:,:,2) = B; >> C C(:,:,1) = 0.4218 0.9595 0.8491 0.7577 0.9157 0.6557 0.9340 0.7431 0.7922 0.0357 0.6787 0.3922 C(:,:,2) = 1.0668 -0.8323 0.7143 0.8580 0.0593 0.2944 1.6236 1.2540 -0.0956 -1.3362 -0.6918 -1.5937 >> [n1, n2, n3] = outvar(C) n1 = n2 = n3 =
Задание 2 1. Напишите М-функцию с подфункцией вычисления логарифма числа по основаниям 3 и 5. Входным аргументом главной (основной) М-функции примите одномерный массив чисел.
Пример 6. Написать М-функцию для перестановки строк прямоугольной матрицы вещественных чисел.
Программный код решения примера
Возможный результат выполнения программы в командном окне MATLAB: >> % Матрица нормально распределенных случайных чисел >> q = randn(7, 6) q = 1.0347 -1.0689 -1.7115 -0.1649 -1.1135 -1.0891 0.7269 -0.8095 -0.1022 0.6277 -0.0068 0.0326 -0.3034 -2.9443 -0.2414 1.0933 1.5326 0.5525 0.2939 1.4384 0.3192 1.1093 -0.7697 1.1006 -0.7873 0.3252 0.3129 -0.8637 0.3714 1.5442 0.8884 -0.7549 -0.8649 0.0774 -0.2256 0.0859 -1.1471 1.3703 -0.0301 -1.2141 1.1174 -1.4916 >> % Переставим 2 и 5 строки >> m = swapR(q, 2, 5) m = 1.0347 -1.0689 -1.7115 -0.1649 -1.1135 -1.0891 -0.7873 0.3252 0.3129 -0.8637 0.3714 1.5442 -0.3034 -2.9443 -0.2414 1.0933 1.5326 0.5525 0.2939 1.4384 0.3192 1.1093 -0.7697 1.1006 0.7269 -0.8095 -0.1022 0.6277 -0.0068 0.0326 0.8884 -0.7549 -0.8649 0.0774 -0.2256 0.0859 -1.1471 1.3703 -0.0301 -1.2141 1.1174 -1.4916
Задание 3 1. Напишите М-функцию для перестановки столбцов прямоугольной матрицы вещественных чисел. Протестируйте ее. 2. Напишите М-функцию для перестановки строк прямоугольной матрицы, состоящей из строчных букв латинского алфавита. Протестируйте ее.
Пример 7. Написать М-функцию с именем tlimit для вычисления пределов от строковых выражений.
Программный код решения примера
Пример применения функции tlimit по вычислению второго замечательного предела: >> s = '(1 + 1/x)^x'; f = tlimit(s, 'x', inf, 'left') f = Exp(1) >> format long; e = double(f) e = 2.718281828459045
Задание 4 1. Видоизмените выражение s, чтобы второй замечательный предел вычислялся при стремлении переменной х к нулю. 2. С помощью функции tlimit вычислите первый замечательный предел.
Рассмотрим примеры по вычислению производных и интегралов с помощью библиотечных функций diff и int.
Результат выполнения программы: ====================================== Вычисление производных Заданная функция: y = a*sin(x) Первая производная от заданной функции: dy = a*cos(x) Вторая производная от заданной функции: dy2 = -a*sin(x) ======================================
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|