![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Функции, задаваемые пользователем
Рассмотрим два способа задания функций, определенных пользователем, в MATLAB. Первый способ использует оператор @ для создания, так называемой «анонимной функции». Второй способ использует команду inline. Рассмотрим два способа на примере функции одной переменной
Как было отмечено ранее, большинство функций MATLAB могут оперировать как векторами, так и скалярами, и чтобы быть уверенным, что в качестве аргумента функции может выступать вектор, необходимо ставить точки перед математическими операциями ^, *. Первый способ: > > f = @(x) x.^2.*sin(pi*x/2) f = @(x)x.^2.*sin(pi*x/2) Второй способ: > > f1 = inline('x.^2.*sin(pi*x/2)') f1 = Inline function: f1(x) = x.^2.*sin(pi*x/2) Когда функция задана, неважно каким методом, её можно вычислить, например > > a = f(3) a = -9
> > a = f1(3) a = -9 или > > x = [1 2 3] x = 1 2 3
> > a = f(x) a = 1.0000 0.0000 -9.0000
> > a = f1(x) a = 1.0000 0.0000 -9.0000
Этими способами можно задать функцию двух и более аргументов. Например, > > g = @(x, y) (x+y).*exp(x) g = @(x, y)(x+y).*exp(x)
> > g1 = inline('(x+y).*exp(x)', 'x', 'y') g1 = Inline function: g1(x, y) = (x+y).*exp(x)
> > x = [1 2] x = 1 2
> > y = [2.5 3.4] y = 2.5000 3.4000
> > u = g(x, y) u = 9.5140 39.9009
> > u = g1(x, y) u = 9.5140 39.9009
|