Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ispolzovanie_Matlab_Dlya_Modelirovania_Dvizheni...docx
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
1.4 Mб
Скачать

Скрипты и функции

Как уже было отмечалось выше, выражения на языке Matlab вводятся в командное окно. Однако существует возможность написания программ и сохранения их в файле. В Matlab такие программы бывают двух видов: скрипты и функции. Скрипты и функции вызываются по имени

Скрипты не принимают никаких входных параметров и ничего не возвращают.3 Они нужны лишь для сохранения в файле некоторой последовательности команд и выражений. Скрипты работают с переменными из рабочего пространства. Текущие значения переменных всегда можно посмотреть в окне Workspace. Также в скриптах можно создавать новые переменные и оперировать с ними. При вызове скрипта, Matlab исполняет команды, находящиеся в файле-скрипте.

В следующем примере рассматривается скрипт factorial.m:

cnt = randi(10);

r = zeros(1, uint32(cnt));

for i = 1:cnt

r(1,i) = factorial(i);

end

bar(r)

Для запуска в программе необходимо указать в качестве текущей папки папку, в которой находится созданный нами файл. Далее в командном окне необходимо набрать название файла и нажать Enter. При этом начнет выполняться последовательность команд, записанная в файле factorial.m. Генерируется случайное целое число cnt на интервале от 1 до 10. Создается вектор размерностью cnt. Его элементы имеют тип uint32, им присваивается значение факториала порядкового номера элемента. Команда bar(r) выводит столбчатую диаграмму вектора r.

Функции – это файлы, которые могут принимать входные значения и возвращать выходные значения. Также как и для скриптов, имеется возможности передачи данных в функцию с использованием механизма глобальных переменных. Исходный код встроенных функций Matlab можно посмотреть, набрав в командной строке type имя_функции.

Как видно из примера, первая строка файла-функции выглядит так:

[выходные_переменные] = [имя_функции] (входные_переменные)

% – знак комментария. Все, следующее за этим символом на строке, не будет обрабатываться Matlab при исполнении кода.

После комментария в функции factorial следует исполняемый Matlab код. В нем можно вызывать системные переменные nargin и nargout, которые возвращают соответственно число входных и выходных переменных. Следует учесть, что переменные n,m,N являются локальными. Это значит, что после выполнения функции эти переменные не будут доступны в общем пространстве переменных, которое обособленно от пространства переменных функции.

Вызываются пользовательские функции так же, как и встроенные функции Matlab. Для вызова пользовательской функции из исполняемой программы необходимо, чтобы файл с функцией находился в одном каталоге с исполняемой программой или добавить необходимый каталог к пути поиска командой addpath(«имя каталога»). Использование команды genpath(«имя каталога») возвращает строку, содержащую название каталога и всех в него входящих подкаталогов. Поэтому использование этой команды совместно с addpath позволяет добавить в поиск все подкатегории, входящие в «имя категории».

Следует помнить, что название функции и файла должны совпадать.

Простейшие функции конвертации

str2num(x) – конвертация числового значения x в строковое

num2str(x) – конвертация строкового значения x в числовое

Глобальные переменные

Чтобы единственная копия переменной была доступна нескольким функциям, при объявлении переменной необходимо указать модификатор global. Чтобы основное рабочее пространство получило доступ к переменной, переменную следует объявить глобальной в командной строке.

Пример.

Создана фунцкия inch2cm, которая переводит английские дюймы в сантиметры:

function out = inch2cm(a)

global coef

out = coef*a;

Для проверки работы функции в командном окне введены следующие команды:

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