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