lection_matlab_all / matlab_6
.pdfПрограммирование в MatLab
Работа с командной строкой не является единственно возможным подходом работы с MatLab. Чаще всего пользователь подготавливает либо так называемые файлы-сценарии, либо создаёт собственные функции. Для этих целей предусмотрен встроенный в оболочку среды редактор (и дебаггер по совместительству), хотя создание или изменение файлов кода возможно практически из любого текстового редактора.
Сценарии (или процедуры, или скрипты — scripts) представляют собой сохранённые в файлах последовательности команд, операторов, описаний и управляющих конструкций на языке MatLab.
Сценарии оказываются удобной альтернативой прямой работе с командной строкой при многократном повторении одних и тех же последовательных действий. В этом смысле сценарии можно рассматривать как процедурные макрокоманды.
Пример:
%файл die.m
%часто приходится убирать 'мусор'? Use this!
clear all % очистить все переменные пользователя close all % закрыть все открытые файлы и фигуры clc % очистить консоль
...где-то в процессе работы...
>>die
...шеф! всё пропало...
Файл-сценарий снабжается расширением .m и вызывается из командной строки вызовом по своему имени (без расширения).
Он использует глобальные переменные командной среды, то есть такие переменные, значения которых могут быть изменены в любой момент сеанса работы и в любом месте программы.
Пример:
%файл mysin.m
x = linspace(0, 10, 100); y = sin(x);
plot(x, y, 'r+')
...где-то в процессе работы...
>>mysin
...появились переменные x и y, и нарисовался график...
Фaйл-функция является типичным объектом-модулем языка программирования системы MatLab. Структура такого модуля с одним выходным (необязательным) параметром <var> выглядит следующим образом:
function <var> = f_name(список_параметров) %комментарии %комментарии
<Тело функции с любыми операторами> vаr=выражение %где-то в коде хотя бы один оператор return %где-то в коде хотя бы один оператор
<Тело функции с любыми операторами>
Файл-функция имеет следующие свойства:
•файл-функция является самостоятельным программным модулем, который общается с другими модулями через свои входные и выходные параметры;
•имя файл-функции должно совпадать с названием самой функции;
•функция начинается с объявления function, после которого указывается имя переменной var (или списка [var1, var2, …, varN]) — выходного параметра (или параметров), имя самой функции и список её входных параметров;
•все переменные в теле файла-функции, являются локальными (включая формальные из списка входных параметров), то есть действуют только в пределах тела функции;
•в функцию параметры передаются по значению, а не по ссылке (указателю), т.е. производится копирование данных в локальные переменные.
•функция возвращает свое значение и вызывается при необходимости в виде name(список_параметров) в математических выражениях.
Т.к. переменные в файлах-функциях по умолчанию локальные, они не сохраняют своего значения при выходе из файла-функции. Это ограничение можно обойти: команда global var1 var2... позволяет объявить переменные функции глобальными. Таким образом, внутри функции могут использоваться и глобальные переменные, если это нужно при решении задачи.