Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Основы программирования в MatLab




Система компьютерной математики MATLAB имеет собственный язык программирования высокого уровня, включающий как все обычные возможности традиционных языков программирования и математические возможности MatLab.

Файлы с текстами программ сохраняются в MATLAB с расширением .m и, как правило, называются М-файлами. Для подготовки текста нового М-файла следует использовать команду File, New, M-file, для загрузки существующего М-файла и его последующего редактирования - команду File, Open.В MATLAB имеются два основных вида М-файлов: файлы-сценарии и файлы функции.

Файлы-сценарии

Файл-сценарий представляет собой набор команд MATLAB, сохраненный в файле. После того, как файл-сценарий подготовлен и сохранен, для его выполнения требуется указать имя данного файла-сценария в командном окне или в другом М-файле. Файл-сценарий не имеет входных или выходных параметров. При выполнении файла­­–cценария используются и изменяются переменные рабочей области, как если бы команды, составляющие файл-сценарий, просто вводились в командном окне.

Пример. Разработать файл-сценарий для выделения последнего столбца произвольной матрицы в отдельную матрицу.

Для подготовки текста М-файла требуется выбрать команду File, New M-file. Вызывается редактор для записи текста М-файла. В данном примере текст М-файла может быть следующим:

% Выделение последней строки в отдельную матрицу

[m,n]=size(a);

b=a(:,n);

Символ "% " в М-файле является признаком комментария. Функция size(имя_матрицы) определяет размеры заданной матрицы. Точнее, результатом выполнения функции size является матрица (строка) из двух элементов, первый из которых - количество строк заданной матрицы, второй количество столбцов. В результате переменная m получит значение, равное количеству строк матрицы а, а переменная n - количеству ее столбцов. Последняя команда в файле-сценарии выделяет из матрицы с именем а последний столбец.

Для сохранения М-файла выбирается команда File, Save, в которой указывается имя. После сохранения М-файла можно закрыть окно редактора и вернуться в командное окно.

Прежде чем использовать созданную программу-сценарий, необходимо создать матрицу с именем а, которая будет обрабатываться с помощью этого сценария. Например, введем в командном окне следующую матрицу из трех строк и четырех столбцов: а=[5,8,5,7;3,1,9,5;5,9,6,1]. Матрица, которую предполагается обрабатывать с помощью созданного файла-сценария, должна иметь имя а, так как это имя указано в файле-сценарии. Чтобы выделить из введенной матрицы последний столбец в отдельную матрицу, требуется ввести в командном окне имя файла-сценария, т.е. слово stolbec. В результате выполнения файла-сценария в рабочей области создаются три новые переменные: m=3, n=5, b=[7; 5; 1]. Если до выполнения файла-сценария переменные с такими именами уже имелись в рабочей области, то их прежние значения теряются.

Файлы-функции

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

При выполнении файла-функции переменные рабочей области не изменяются и не используются: все переменные файла-функции локальны. Например, если в рабочей области имеется переменная с именем х, и в файле-функции имеется переменная с тем же именем, то любые операции с переменной х в файле-функции никак не влияют на ее значение в рабочей области (конечно, если при вызове файла-функции переменная х не была указана в качестве выходного параметра).

Первая строка (заголовок) файла-функции имеет вид:

function [выходные_параметры] = имя файла (входные_параметры)

Здесь function - зарезервированное слово. Имя_файла - это имя М-файла, в котором сохраняется функция.

Пример. Разработать файл-функцию для решения квадратного уравнения. Функция должна вычислять как вещественные, так и комплексные корни. Если корни комплексные, то выводится сообщение. Кроме корней уравнения, функция должна возвращать код результата: 1 - уравнение имеет два вещественных корня, 0 - один вещественный корень, -1 - корни комплексные.

Подготовка текста файла-функции.

Для подготовки текста файла-функции, как и файла-сценария, используется редактор М-файлов. В данном примере текст файла-функции может быть следующим:

function [x,kod]=neizv(a,b,c)

% Решение квадратного уравнения

% Вызов: neizv (a,b,c), или x= neizv(a,b,c), или [x,k]= neizv (a,b,c)

% a,b,c - коэффициенты уравнения

% х- корни уравнения

% к - код результата (1 - уравнение имеет два вещественных корня,

% 0 - один вещественный корень, -1 - корни комплексные)

n=nargin;

if n~=3

егтог('Неверное количество аргументов')

end

d=b^2-5*a*c;

if d<0

x(1)=(-b+sqrt(d)/(2*a);

x(2)=(-b-sqrt(d)/(2*a);

else

x=-b/(2*a);

end

if d<0

kod=-l;

else

if d= 0

kod=0;

else

kod=l;

end

Сохраним этот файл-функцию под именем neizv.m. Указанный в начале функции function комментарий, включается в систему подсказок MATLAB. Это значит, что если в командном окне ввести команду helpneizv (конечно, после того, как приведенный выше файл neizv.m сохранен), то комментарий, приведенный в файле neizv.m, выводится на экран.

Использованная в М-файле функция nargin - стандартная функция, возвращающая количество аргументов выполняемой функции (в данном примере функции quadur). В данной функции предусмотрена проверка: если количество аргументов отличается от трех, значит, при вызове функции допущена ошибка. Error - команда прерывания функции с выводом заданного сообщения. Из текста М-файла видно, что для проверки на неравенство в MATLAB используется обозначение "~= " (условие if d~=0 означает: "если переменная d не равна нулю"). Проверка на равенство обозначается двумя знаками "равно" (условие else if d=0 ) в отличие от операции присваивания, обозначаемой одним знаком "равно".

Использование файла-функции

Пусть требуется решить уравнение -5х+2х+1=0. Приведем возможные способы вызова функции neizv для его решения. Если в командном окне ввести

neizv (-5,2,l)

то переменная ans получает значение матрицы из двух элементов - корней уравнения (0,6899 и -0,2899). Код результата (второй выходной параметр функции quadur) не возвращается, так как по умолчанию файл-функция возвращает лишь первый выходной параметр.

Основные управляющие структуры для программ в MatLab

Основные конструкции, используемые для управления выполнением программы в MATLAB, подобны аналогичным конструкциям в алгоритмических языках программирования Fortran, Pascal и др.

Условный оператор:

if условие_1

команды_1

elseif условие_2

команды_2

else

команды_3

end

Здесь команды_1, команды_2 и команды_3 - произвольные наборы команд MatLab, выполняемые при соответствующих условиях.

Оператор цикла "до":

for переменная=начальное_значение : шаг : конечное_значение

команды

end

Если шаг равен единице, то его можно не указывать.

Оператор цикла "пока":

while условие

команды

end

Для прерывания цикла используется команда break.

Переключатель:

switch выражение

case значение_1

команды_1

case значение_2

команды_2

otherwise

команды

end

Если выражение равно значению_1, то выполняются команды_1; если

выражение равно значению_2, то выполняются команды__2 и т.д. Если выражение не равно ни одному из указанных значений, то выполняются команды, указанные после слова otherwise.

Команда ввода (ввод значения переменной x):

х=input('Введите переменную:');

Команда вывода (вывод значения переменной у):

disp('Значение Y равно ') ; disp(y)

 


Поделиться:

Дата добавления: 2015-04-05; просмотров: 176; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.005 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты