Построение и оформление графиков функций в среде Matlab. Работа с окнами изображений

ЛР 2

M-файлы, cкрипты и функции в системе Matlab.

В MatLab подпрограммы имеют разрешение.m. Подпрограммы могут быть как скриптами(не имеют параметров; имеют общее пространство рабочих переменных с вызывающим кодом.), так и функциями(это подпрограммы MATLAB; имеют собственное, независимое от вызывающего кода, пространство рабочих переменных; имеют параметры.). Все подпрограммы имеют собственные локальные перменные.
 Передача данных между подпрограммой и основным кодом возможна либо ч ерез параметры функции, либо через глобальные переменные.

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

 При обращении к функции формальные параметры заменяются на данные вызывающего кода (фактические параметры).
 Записываем функцию, как function [Список выхода] = ИмяФункции(Список входа)




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

MATLAB:способы передачи данных между функцией и вызывающим кодом:

· через параметры функции

          формальные параметры

• Формальные параметры действуют только внутри функции (являются локальными).

• При обращении к функции формальные параметры заменяются на данные вызывающего кода (фактические параметры).

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

• Формальные параметры - это «вход» и «выход» подпрограммы (функции MATLAB).

          Фактические переменные

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

• Фактические параметры должны соответствовать формальным по числу, порядку перечисления, типу и структуре.

· через глобальные переменные

Функция может использовать не только локальные данные (своей рабочей области), но и глобальные данные (базовой рабочей области).

Пример.

function h=falling(t)

global GRAVITY

h=1/2*GRAVITY*t.^2;

Функция может быть вызвана так:

global GRAVITY

GRAVITY=9.8;

y=falling(0.1:0.1:1);

Нельзя делать глобальными промежуточные переменные!

 

28. Описание и вызов функций в среде Matlab.

function [s,k]=sumk(a)     end

% Что делает функция?    if s(p)>0

[n,m]=size(a);                         k=k+1;

k=0;                                       end

for p=1:n                 end

s(p)=0;

for q=1:m

  s(p)=s(p)+a(p,q)

вызов

[ СписокВыхода ]= ИмяФункции (СписокВхода)

A = 1 2 3 4 5

      6 7 8 -90 0

>> [sA,kA]=sumk(A)

sA = 15 -69

29. Глобальные переменные в среде Matlab. Их применение.

Функция может использовать не только локальные данные (своей рабочей области), но и глобальные данные (базовой рабочей области).

   Пример.

function h=falling(t)

global GRAVITY

h=1/2*GRAVITY*t.^2;

Функция может быть вызвана так:

global GRAVITY

GRAVITY=9.8;

y=falling(0.1:0.1:1);

Нельзя делать глобальными промежуточные переменные!

 

Понятие о подпрограммах – параметрах других подпрограмм. Задачи, в которых они используются. Манипуляторы функций в среде Matlab. Функции – параметры других функций в среде Matlab. Разработка функции с функцией - формальным параметром (примеры). Пример корректного использования глобальных переменных. Класс Function Functions.

В каких задачах используются процедуры-параметры?

• Использование параметра-подпрограммы необходимо, когда некоторый алгоритм, описанный как подпрограмма, применим к множеству алгоритмов, каждый из которых также задается подпрограммой.

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

•  Средства для использования параметров-подпрограмм имеются во всех алгоритмических языках, предназначенных для решения вычислительных задач (СИ, Фортран, MatLab, …).

Манипулятор функции – это ссылка на функцию (можно считать адресом входа в функцию). Обозначается символом @.

В простейшем случае это возможность переобозначения функции, например:

           >> h=@sin

           h =@sin

           >> y=sin(pi/6)

           y = 0.5000

           >> y=h(pi/6)

           y = 0.5000

 Функция feval позволяет вычислить значение функции по ее манипуляру и аргументу: feval(манипулятор, аргумент). Например:

 

>> y=feval(h,pi/6) % эквивалентно y=h(pi/6)         или      >> y=feval(@sin,pi/6)

y = 0.5000

Манипулятор функции может использоваться как формальный входной параметр другой функции

Пример: функция plot_fhandle строит график для заданной функции одной переменной и диапазона аргумента:

function x = plot_fhandle(fh, data)

plot(data, feval(fh, data))

Пусть надо решить уравнение, заданное с точностью до параметра p, например, p задается вводом:

                         x – p cosx=0.

   В программе надо обратиться к root, подставив вместо формального параметра F фактический

                          g(x,p)= x – p cosx.

   Но g имеет два аргумента, а F один. Выход из этой ситуации состоит в том, чтобы параметр р считать глобальным (если функцию root изменять нельзя).


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: