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

20. Создание м-функций и м-сценариев

M–файлы это обычные текстовые файлы, которые создаются с помощью текстового редактора. Существуют два типа М–файлов: М–сцена­рии и М– функции. М–сценарии предназначены для автоматизации вычисле­ний, которые многократно должны были бы вводится из командной строки. У них нет вводных и выходных параметров. Они задаются в самой программе. М– функции предназначены для расширения возможностей языка MATLAB (биб­лиотека функций, пакеты прикладных программ), допускают входные и выход­ные параметры. Для создания М–файлов надо открыть новый файл опцией New или редактор/отладчик edit.

M–файл в системе MATLAB должен иметь определённую структуру. Структура М–функции включает следующие компоненты:

  • строка определения М–функции – задает имя, количество и порядок следования входных и выходных аргументов;

  • первая строка комментария – определяет назначение функции. Она выводится на экран с помощью команды help<имя каталога>;

  • комментарий – выводится на экран вместе с первой строкой при использовании команды help<имя функции>;

  • тела функции – это программный код, который реализует вычисления и присваивает значения выходным аргументам.;

  • строчные комментарии.

Пример М-функции: вычисление n факториала

Function f = fact(n)

% FACT Вычисление факториала.

% fact(n) возвращает n! = факториал числа n.

% prod(1:n) – вычисляет произведение чисел от 1 до n.

Чтобы создать функцию fact надо в окне редактора ввести строки текста и сохранит их в файле с именем fact.m текущем каталоге. Если функция имеет более одного выходного аргумента, то его список заключается в квадратные скобки. Примеры: f = fact(n); [x,y,z] = sphere(theta, phi,rho]. М – функции можно вызвать из командной строки или из других фай­лов, указав входные аргументы в круглых скобках, выходные - в квадратных скобках. Функции nargin и nargout позволяют определить количество входных и выходных параметров вызываемой функции.

21. Арифметические, логические операции в системе mathlab.

Для арифметических операторов установлены следующие приоритеты.

Уровень 1: поэлементное транспонирование ( .’ ), поэлементное возведение в степень ( .^ ), эрмитово-сопряженное транспонирование матрицы (‘), возведение матрицы в степень ( ‘ ).

Уровень 2: унарное сложение (+), унарное вычитание (-).

Уровень 3: умножение массивов ( .* ), правое деление ( ./ ), левое деление мас­сивов ( .\ ), умножение матриц ( * ), решение линейных уравнений - операция ( / ), операция ( \ ).

Уровень 4: сложение ( + ), вычитание ( - ).

Уровень 5: оператор формирования массивов ( : ).

Логические операции & , | , ~ соответствуют операторам булевой алгебры AND, OR, NOT. Массив рассматривается как совокупность булевых перемен­ных и логические операции реализует поэлементное сравнение массивов одина­ковых размерностей.

22. Операции с векторами и матрицами в системе mathlab.

Массив – упорядоченная, пронумерованная совокупность однородных данных, имеющая одно имя. Доступ к отдельным элементам массива осуществляется по целочисленному индексу, то есть по номеру элемента в массиве. В зависимости от количества индексов, определяющих положение элемента в массиве, массивы разделяют на одномерные (вектора-строки, вектора-столбцы), двумерные (матрицы) и многомерные.

MatLab представляет все данные в виде массива, даже число – это двумерный массив с размерностью один на один.

Работа с векторами.

Вектора - это одномерные (линейные) числовые наборы чисел, в которых позиция каждого элемента задается единственным числом – его номером.

Задание векторов

>> a1=[3 4 9 2] – вектор-строка

>> a1=[3, 4, 9, 2] – вектор-строка

>> a1=[3; 4; 9; 2] – вектор-столбец

Доступ к элементам вектора осуществляется заданием его индекса в круглых скобках после имени.

Задание векторов с помощью операции «:». Пусть требуется сформировать одномерный массив чисел в диапазоне от 3.7 до 8.947 с приращением 0.3. Это легко достигается с помощью оператора «двоеточие». С помощью функции length можно определить, сколько элементов попало в вектор.

>> mas=3.7:0.3:8.947;

>> length(mas)

ans =

18

Применение функций обработки данных к векторам

prod Перемножение элементов вектора

length Определение числа элементов вектора

sum Суммирование элементов вектора

abs Определение модуля элементов вектора

min Определение минимального элемента вектора

max Определение максимального элемента вектора

sort Упорядочивание вектора по возрастанию

mean Вычисление среднего арифметического вектора

Поэлементные операции с векторами

Чтобы выполнить поэлементное умножение, деление, возведение в степень векторов, используют следующие знаки «.*», «./» «.^» (без пробелов!). В результате получается тоже вектор.

Умножение деление вектора на число делается с помощью обычных знаков «*» «/» без точки.

Ввод матриц, простейшие операции

Для хранения матриц в системе MatLab используются двумерные массивы, имеющие уникальное имя. Доступ к элементам массива осуществляется при помощи двух индексов: номера строки и номера столбца, указанных в круглых скобках, например c(2,3), или с помощью одного индекса, например с(1), который задает порядковый номер элемента матрицы в векторе, так как матрица А размером m на n в памяти компьютера хранится в виде вектора длины mn, в котором элементы матрицы расположены один за другим построчно.

В системе MatLab вектора представляются в виде вектор-строки и вектор-столбца. Ввод таких векторов оформляется по-разному:

>> a1=[3 4 9 2] – вектор-строка

>> a1=[3, 4, 9, 2] – вектор-строка

>> a1=[3; 4; 9; 2] – вектор-столбец,

поэтому и матрицы небольших размерностей можно ввести либо:

по строкам

>> a=[3 1 -1;2 4 3]

a =

3 1 -1

2 4 3

либо по столбцам

>> a=[[3;2] [1;4] [-1;3]]

a =

3 1 -1

2 4 3

Для того, чтобы узнать размеры двумерного массива и «геометрию» векторов (вектор-столбцы или вектор-строки), нужно использовать функцию size.

>> size(a)

ans =

2 3

Первым показывается число строк, вторым – число столбцов.

Доступ к элементам матриц осуществляется при помощи двух индексов – номеров строки и столбца, заключенных в круглые скобки.

Вычисления с массивами

Над массивами одинаковых размеров допускаются операции сложения (+) и вычитания (-).

Для поэлементного перемножения и деления массивов используются знаки «.*» и «./» (правое поэлементное деление).

Есть еще левое поэлементное деление. Знак «\.». Разница между ними такова

A ./ B

A .\ B

A(k,m) / B(k,m)

B(k,m) / A(k,m)

Привычные знаки «*» и «/» предназначены в системе MatLab для других операций: «*» в линейной алгебре, а «/» для нахождения корней систем линейных уравнений. Транспонирование матрицы, так же как и векторов производится с помощью символов «.’».

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]