Читайте также:
|
|
Важны следующие свойства файлов-сценариев:
– они не имеют входных и выходных аргументов;
– работают с данными из рабочей области;
– в процессе выполнения не компилируются;
– представляют собой зафиксированную в виде файла последовательность операций, полностью аналогичную той, что используется в сессии при работе в командном окне.
Основным комментарием является первая строка текстовых комментариев, а дополнительным – последующие строки. Основной комментарий выводится при выполнении команд lookfor и help имя_каталога. Полный комментарий выводится при выполнении команды help Имя_файла.
Использование m -файла-сценария состоит в вызове его в заданное место файла для выполнения определяемых им действий.
М -файл-функция является типичным объектом языка программирования системы MATHLAB. Одновременно он является полноценным модулем с точки зрения структурного программирования, поскольку содержит входные и выходные параметры и использует аппарат локальных переменных. Структура такого модуля с одним выходным параметром выглядит следующим образом:
function vаг = f_name(Список_параметров)
%Основной комментарий
%Дополнительный комментарий
Тело файла с любыми выражениями
vаг=выражение
М -файл функции имеет следующие свойства:
– он начинается с объявления function, после которого указывается имя переменной var – выходного параметра, имя самой функции и список ее входных параметров;
– функция выдает значение и может использоваться в виде
Name(список_параметров)
в математических выражениях;
– все переменные, имеющиеся в теле файла-функции, являются локальными, то есть действуют только в пределах тела функции;
– файл-функция является самостоятельным программным модулем, который общается с другими модулями через свои входные и выходные параметры;
– правила вывода комментариев те же, что у файлов-сценариев;
– файл-функция служит средством расширения системы MATHLAB;
– при обнаружении файла-функции он компилируется и затем исполняется, а созданные машинные коды хранятся в рабочей области системы MATHLAB.
Последняя конструкция vаг = выражение вводится, если требуется, чтобы функция выдавала результат вычислений.
Пример 5. Файл-функция
function r =randint(m,n)
%RANDINT случайная матрица с целыми элементами.
%randint(m,n) возвращает матрицу mxn с целыми
%элемента м и между 0 и 9.
a =floor(10*rand(m,n));
Пример 6. Более общий вид файл-функции
function r =randint(m,n,a,b)
%RANDINT случайная матрица с целыми элементами.
%randint(m,n)возвращает матрицу mxn с целыми
%элементами между 0 и 9.
%rand(m,n,a,b) возвращает матрицу с целыми
%элементами в диапазоне между целыми a и b.
if nargin <3,a =0;b =9;end
r =floor((b-a+1)*rand(m,n))+a;
Этот текст должен быть записан на диск в виде файла с именем randint.m (в соответствие с именем функции – это обязательное условие для функции).
Первая строка функции - объявление имени функции, входные аргументы, выходные аргументы. Без такой строки весь следующий файл является программой, или сценарием, а не функцией. Так, например, оператор
z =randint(4,5)
приведет к передаче чисел 4 и 5 переменным m и n,а выходной результат будет
передан переменной z. Поскольку переменные в файле-функции локальные, их имена никак не влияют на имена и значения переменных в текущей рабочей области MATHLAB.
Приведенная форма файла-функции характерна для функции с одним выходным параметром. Если выходных параметров больше, то они указываются в квадратных скобках после слова function. При этом структура модуля имеет следующий вид:
function [vаг1,vаг2,...] = f_namе(список_параметров)
%Основной комментарий
%Дополнительный комментарий
Тело файла с любыми выражениями
Var1-выражение
Такая функция во многом напоминает процедуру. Ее нельзя слепо использовать непосредственно в математических выражениях, поскольку она выдает не единственный результат, а множество результатов – по числу выходных параметров. Если функция, имеющая несколько выходных параметров, входит в состав математического выражения, для вычислений в выражении будет использован первый из выходных параметров. Это зачастую ведет к ошибкам в вычислениях. Поэтому, как отмечалось, данная функция используется как отдельный элемент программ в виде
[varl,var2, …] = namе(Список_параметров)
После такого вызова выходные переменные varl, var2, … становятся определенными и их можно использовать в последующих математических выражениях и иных сегментах программы. Если функция используется в виде
f_namе(список_параметров),
то выдается значение только для первого выходного параметра – переменной varl. Приведенная далее функция, которая вычисляет наибольший общий делитель двух целых чисел с помощью алгоритма Евклида, иллюстрирует также использование функции вывода сообщений об ошибках.
Пример 7. Файл-функция с двумя параметрами
function a=gcd(a,b)
%GCD Наибольший общий делитель.
%gcd(a,b) является наибольшим общим делителем
%целых чисел a и b,оба не равны нулю.
a =round(abs(a));b =round(abs(b));
if a ==0 &b ==0
error(’gcd не определено, если оба числа равны нулю ’)
Else
while b ~=0
r =rem(a,b);
a=b;b=r;
End
End
Инструментальная панель командного окна системы MATHLAB позволяет обеспечить простой доступ к операциям над m -файлами. Эти операции включают:
– создание нового m -файла (New File);
– открытие существующего m -файла (Open File);
– удаление фрагмента (Cut);
– копирование фрагмента (Copy);
– вставка фрагмента (Paste);
– отмена только выполненной операции (Undo);
– просмотр рабочей области (Workspace Browser);
– просмотр путей доступа (Path Browser);
– текущая помощь (Help).
Рабочая область. Рабочая область системы MATHLAB Workspace – это область памяти, в которой размещены переменные системы. Содержимое этой области можно просмотреть из командной строки с помощью команд who и whos. Различие между этими командами состоит в следующем:
– who – выводит только имена переменных;
–whos – выводит информацию о размерах массивов и типе переменной.
Сохранение переменных рабочей области. Команда Save Workspace As… меню File либо команда save fname, набранная в командном окне позволяет сохранить содержимое рабочей области в двоичном m -файле, который можно в дальнейшем вызвать командой Open из меню главного окна, либо командой load из командного окна.
Загрузка рабочей области. Команда Open меню File или команда load, набранная в командном окне позволяет загрузить m -файл, который был ранее сохранен с помощью команды save. При загрузке m -файла новые значения одноименных переменных будут записаны взамен старых. Если m -файл имеет расширение, отличающееся от. mat, то необходимо использовать флаг – mat; в противном случае MATHLAB будет считать форматом файла ASCII -формат.
Загрузка файлов данных в ASCII-формате. Команда load позволяет выполнять импорт файлов данных в ASCII -формате; она преобразует содержимое файла в переменную с именем файла только без расширения.
Например, применение команды load tides.dat создает в рабочей области системы MATHLAB переменную с именем tides. Если исходный файл в ASCII -формате имеет m строк с n значениями в каждой строке, то результатом будет массив чисел размера m × n.
Для сохранения или загрузки последовательности файлов, имена которых имеют общий корень и дополнительный целочисленный суффикс, необходимо использовать структуру цикла.
Например, следующая конструкция позволяет сохранить квадраты чисел от 1 до 10 в файлах с именами data1, …, data10:
file = 'data';
for i = 1:10
j = i.^2;
save([file int2(i)],'j');
End
Использование группового символа. Команды load и save допускают использование группового символа (*) в качестве замены ряда символов в шаблоне имени переменной.
Например, команда save rundate x* сохраняет все переменные, имена которых начинаются с символа x в файле с именем rundata.mat.
Точно также команда load testdata ex1*95 загружает все переменные, имена которых начинаются с символов 'ex1' и заканчиваются символами '95', независимо от того, какие символы размещены между ними.
Пример 8. Использование рабочего пространства MATLAB.
Комментарии к вычислениям:
Команда вывода имен всех переменных рабочего пространства.
Команда удаления переменной из рабочего пространства.
Команда сохранения рабочего пространства в дисковом файле под заданным именем.
Команда очистки рабочего пространства.
Команда загрузки рабочего пространства из ранее сохраненного файла.
Команда очистки командного окна (рабочее пространство не изменяется).
В результате сохранения рабочего пространства на диске создается файл с заданным именем (может быть произвольным) и расширением mat. Сохранение рабочего пространства можно выполнить через меню командного окна File пункт Save workspace as …
В командном окне есть возможность вернуть в командную строку ранее введенные команды, они запоминаются в специальной области памяти, называемой стеком команд. Для этого используются клавиши «стрелка вверх» и «стрелка вниз». Клавиша «стрелка вверх» позволяет вывести предыдущие команды в порядке обратном их вводу. Клавиша «стрелка вниз» осуществляет прокрутку команд в противоположном направлении.
Создание графиков. Функция plot имеет различные формы, связанные с входными параметрами, например plot(у) создает кусочно-линейный график зависимости элементов у от их индексов. Если вы задаете два вектора в качестве аргументов, plot(x,y) создаст график зависимости у от х.
Например, для построения графика значений функции sin от нуля до 2p сделаем следующее
t = 0:pi/100:2*pi; у = sin(t); plot(t,y).
Вызов функции plot с многочисленными парами х-у создаст многочисленные графики. MATLAB автоматически присваивает каждому графику свой цвет (исключая случаи, когда это делает пользователь), что позволяет различать заданные наборы данных. Например, следующие три строки отображают график близких функций, и каждой кривой соответствует свой цвет:
у2 = sin(t-.25);
уЗ = sin(t-.5);
Дата добавления: 2015-10-28; просмотров: 155 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Missing operator, comma or semicolon | | | Plot( t, y, t, y2, t, уЗ). |