Как задать функцию в матлаб
Перейти к содержимому

Как задать функцию в матлаб

  • автор:

Как задать функцию

Author24 — интернет-сервис помощи студентам

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

Здесь вы можете заказать любую студенческую или школьную работу.

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Как задать функцию?
Как задать такую функцию x=-4 y=4 x=-4 x=4 f3(x,y)=2x-y^3 Графики должны выйти типа

Как задать функцию маятника?
Здравствуйте уважаемые! Начинаю изучать matlab. Подскажите как задать функцию маятника. Мне.

Как задать периодическую функцию
Добрый вечер. Помогите задать периодический сигнал в matlab. Сигнал задается математическим.

Как задать передаточную функцию?
подскажите как задать передаточную функцию W(s)=44/(45.45s+1)^n

164 / 144 / 49
Регистрация: 29.10.2014
Сообщений: 738

Добавлено через 30 секунд
ну и темы внизу читаем

Регистрация: 04.05.2017
Сообщений: 27
Спасибо, понял какой здесь принцип.

Эксперт по электронике

939 / 839 / 121
Регистрация: 23.11.2012
Сообщений: 2,489

ЦитатаСообщение от rasul98 Посмотреть сообщение

понял какой здесь принцип
«Здесь» — это где? Какой вопрос — такой и ответ.

ЦитатаСообщение от rasul98 Посмотреть сообщение

чтобы посчиталось значение функции, например y(b)
Если Ваша функция «y» НАПРИМЕР косинус, то так:

cos(b)

6793 / 4861 / 2050
Регистрация: 02.02.2014
Сообщений: 12,997
rasul98, примеры

1 2 3 4 5 6 7 8 9 10 11 12 13
clc; clear all; clf; % один вариант расчета функции x1=0:0.1:1 y1=cos(x1) plot(x1,y1,'o-b'); hold on; % два вариант y2=@(x)(cos(x)) x2=-0.9:0.2:0.4; plot(x2,y2(x2),'s-r') % три вариант y3 = inline('cos(x)') x3=-0.6:0.3:2 plot(x3,y3(x3),'*g--')

164 / 144 / 49
Регистрация: 29.10.2014
Сообщений: 738
Да человек уже все сам понял.
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Как правильно задать передаточную функцию?
Имеется САУ следующего вида: Насколько я понял, передаточная функция разомкнутой системы.

Как правильно задать функцию в Матлаб
Написал следующую функцию: function z = opt(x) %UNTITLED Summary of this funct .

Как задать периодическую кусочно-заданную функцию?
Я пытаюсь задать периодическую, кусочно-заданную функцию, которая аналитически определена так: .

Undefined function or variable ‘read_txt’. Как задать эту функцию?
close all % закрывает все графические окна программы MATLAB clear; % выполняет очистку рабочей.

Или воспользуйтесь поиском по форуму:

Пользовательские функции и файл-скрипты

Любую последовательность команд в MATLAB можно оформить в виде m-файла.

  • Файл-скрипт не имеет входных и выходных аргументов.
  • Файл-скрипт работает с данными из рабочей области.
  • Все переменные, объявленные в файл-скрипте, являются глобальными.
% Файл-скрипт my_script.m % Комментарий, % который появляется при вызове команды % help my_script x = 0:0.1:0.1; y = sin(x); plot(x,y); 
  • запустить скрипт из редактора, нажав F5 (MS Windows)
  • набрать в консоли (Command window) имя скрипта и нажать Enter.

Во втором случае файл-скрипт должен находится в текущем (рабочем) каталоге

или в списке каталогов, которые просматривает MATLAB. Этот список можно изменить нажав кнопку Set Path на ленте Home

Файл-скрипт можно для удобства разделить на секции при помощи удвоенного знака процента %%. Код в каждой секции можно выполнить отдельно от остального кода, нажав F9 (MS Windows), когда курсор находится в нужной секции.

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

  • inline функции
  • анонимные функции
  • файл-функции

Inline-функции

Inline-функция объявляется при следующим образом:

>> f1 = inline('x1^2+x2^2', 'x1', 'x2'); >> f1(4,2) 

т.е. вызывается функция inline, в которую первым аргументов передается строка — выражение от аргументов функции, которые передаются следующим аргументами также в виде строк. В выражениях inline-функций не могут использоваться имена переменных из рабочей среды, а только переменные – аргументы, объявленные в функции inline.

Вызывается объявленная inline, как и любая другая функция, например, для объявленной выше функции двух переменных:

>> f1(4,2) 

Анонимные функции

Более практичны в сравнении с inline-функциями анонимные функции, которые могут содержать имена переменных из рабочей среды. Анонимные функции также можно использовать для объявления коротких однострочных функций, создание для которых отдельных m-файлов нецелесообразно.

Анонимная функция объявляется при помощи символа @, за которым в круглых скобках следуют аргументы функции, а затем её выражение, например, для объявления функции \[f(x_1, x_2) = x_1^2 + x_2^2\]

>> f = @(x1,x2) x1^2+x2^2; 

Анонимные функции удобно использовать внутри выражений, например для построения графика функции \(x^2 + sin(x)\) на интервале от 0 до 5 можно написать

>> f = @(x) x.^2 + sin(x); >> fplot( f, 0, 5 ); 

но проще использовать анонимную функцию прямо в функции fplot

>> fplot( @(x) x.^2 + sin(x), 0, 5); 

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

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

Создание файл-функции: File -> New -> Function

% Комментарий к функции % function [res1, res2] my_function(x1, x2) res1 = x1^2 + x2^2; res2 = x1 + x2; 

По умолчанию все переменные внутри функции являются локальными. Для того, чтобы несколько функций использовали одну переменную, её необходимо объявить глобальной.

% Комментарий к функции % function [res1, res2] my_function(x1, x2) global g; res1 = g + x1^2 + x2^2; res2 = x1 + x2; 

Имя файла и имя объявленной в нем функции должны совпадать. Как и для файл-скриптов каталог, в котором содержатся вызываемые функции, должен быть текущим (рабочим) или добавлен в список просматриваемых MATLAB.

Функция прекращает работу после выполнения последнего оператора. Принудительно завершить функцию можно директивой return.

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

function f = myfun(x) f1 = infun(x); f = f1 + cos(x); % Внутренняя функция function res = infun(x) a = 3; res = sin(x*3); 

© 2023. All rights reserved.

function

function [y1. yN] = myfun(x1. xM) объявляет функцию с именем myfun это принимает, вводит x1. xM и возвращает выходные параметры y1. yN . Этот оператор объявления должен быть первой исполняемой линией функции. Допустимые имена функций начинаются с буквенного символа и могут содержать буквы, числа или символы нижнего подчеркивания.

Можно сохранить функцию:

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

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

  • Любая функция в файле содержит вложенную функцию.
  • Функция является локальной функцией в файле функции, и любая локальная функция в файле использует end ключевое слово.
  • Функция является локальной функцией в файле скрипта.

Примеры

Функция с одним Выводом

Задайте функцию в файле с именем average.m это принимает входной вектор, вычисляет среднее значение значений и возвращает один результат.

function ave = average(x) ave = sum(x(:))/numel(x); end

Вызовите функцию из командной строки.

z = 1:99; ave = average(z)
ave = 50

Функция с несколькими Выходными параметрами

Задайте функцию в файле с именем stat.m это возвращает среднее и стандартное отклонение входного вектора.

function [m,s] = stat(x) n = length(x); m = sum(x)/n; s = sqrt(sum((x-m).^2/n)); end

Вызовите функцию из командной строки.

values = [12.7, 45.4, 98.9, 26.6, 53.1]; [ave,stdev] = stat(values)
ave = 47.3400 stdev = 29.4124

Функция в файле скрипта

Задайте скрипт в файле с именем integrationScript.m это вычисляет значение подынтегрального выражения в ../../examples/matlab/win64/FunctionInAScriptFileExample_eq17815186678410134909.png\pi/3$и вычисляет область под кривой от 0 до $\pi$. Включайте локальную функцию, которая задает подынтегральное выражение $y = \sin(x)^3$.

Примечание: Включая функции в скриптах требует MATLAB® R2016b или позже.

% Compute the value of the integrand at 2*pi/3. x = 2*pi/3; y = myIntegrand(x) % Compute the area under the curve from 0 to pi. xmin = 0; xmax = pi; f = @myIntegrand; a = integral(f,xmin,xmax) function y = myIntegrand(x) y = sin(x).^3; end 
y = 0.6495 a = 1.3333

Несколько функций в функциональном файле

Задайте две функции в файле с именем stat2.m , где первые вызовы функции второе.

function [m,s] = stat2(x) n = length(x); m = avg(x,n); s = sqrt(sum((x-m).^2/n)); end function m = avg(x,n) m = sum(x)/n; end

Функциональный avg local function. Локальные функции только доступны для других функций в том же файле.

Вызовите функциональный stat2 из командной строки.

values = [12.7, 45.4, 98.9, 26.6, 53.1]; [ave,stdev] = stat2(values)
ave = 47.3400 stdev = 29.4124

Функция с валидацией аргумента

Задайте функцию, которая ограничивает вход числовым вектором, который не содержит Inf или NaN элементы. Эта функция использует arguments ключевое слово, которое допустимо для MATLAB ® версии R2019b и позже.

function [m,s] = stat3(x) arguments x (1,:) end n = length(x); m = avg(x,n); s = sqrt(sum((x-m).^2/n)); end function m = avg(x,n) m = sum(x)/n; end

В arguments блок кода, (1,:) указывает на тот x должен быть вектор. Функции валидации, , ограничьте элементы в x к числовым значениям, которые не являются Inf или NaN . Для получения дополнительной информации смотрите Валидацию Аргумента функции.

Вызывание функции с вектором, который содержит элемент, который является NaN нарушает объявление входного параметра. Это нарушение приводит к ошибке, будучи выданным mustBeFinite функция валидации.

values = [12.7, 45.4, 98.9, NaN, 53.1]; [ave,stdev] = stat3(values)
Invalid input argument at position 1. Value must be finite.

Смотрите также

Темы

  • Создание функций в файлах
  • Локальные функции
  • Вложенные функции
  • Базирование и функционирование рабочих областей
  • Порядок приоритета функций
  • Валидация аргумента функции
  • Индексация в результаты вызова функции

Представлено до R2006a

Открытый пример

У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?

Документация MATLAB

Поддержка

  • MATLAB Answers
  • Помощь в установке
  • Отчеты об ошибках
  • Требования к продукту
  • Загрузка программного обеспечения

© 1994-2021 The MathWorks, Inc.

  • Условия использования
  • Патенты
  • Торговые марки
  • Список благодарностей

Для просмотра документации необходимо авторизоваться на сайте
Войти
Памятка переводчика

1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.

2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.

3. Сохраняйте структуру оригинального текста — например, не разбивайте одно предложение на два.

4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.

5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.

Документация

И скрипты и функции позволяют вам повторно использовать последовательности команд путем хранения их в программных файлах. Скрипты являются самым простым типом программы, поскольку они хранят команды точно так же, как вы ввели бы их в командной строке. Функции обеспечивают больше гибкости, в основном, потому что можно передать входные значения и возвратить выходные значения. Например, эта функция с именем fact вычисляет факториал номера ( n ) и возвращает результат ( f ).

function f = fact(n) f = prod(1:n); end

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

Можно вызвать функцию из командной строки, с помощью тех же синтаксических правил, которые применяются к функциям, установленным с MATLAB. Для примера вычислите факториал 5.

x = 5; y = fact(5)
y = 120

Начиная в R2016b, другая опция для хранения функций должна включать их в конце файла скрипта. Например, создайте файл с именем mystats.m с несколькими командами и двумя функциями, fact и perm . Скрипт вычисляет сочетание (3,2).

x = 3; y = 2; z = perm(x,y) function p = perm(n,r) p = fact(n)/fact(n-r); end function f = fact(n) f = prod(1:n); end

Вызовите скрипт из командной строки.

mystats
z = 6

Синтаксис для функционального определения

Первая линия каждой функции является оператором определения, который включает следующие элементы.

function ключевое слово (требуется)

Используйте символы нижнего регистра для ключевого слова.

(Дополнительные) выходные аргументы

Если ваша функция возвращает один выходной параметр, можно задать выходное имя после function ключевое слово.

function myOutput = myFunction(x)

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

function [one,two,three] = myFunction(x)

Если нет никакого выхода, можно не использовать его.

function myFunction(x)

Или можно использовать скобки пустого квадрата.

function [] = myFunction(x)

Имя функции (требуется)

Допустимые имена функций следуют тем же правилам как имена переменных. Они должны начаться с буквы и могут содержать буквы, цифры или символы нижнего подчеркивания.

Примечание

Чтобы избежать беспорядка, используйте то же имя и для файла функции и для первой функции в файле. MATLAB сопоставляет вашу программу с именем файла , не имя функции. Файлы скрипта не могут иметь того же имени как функция в файле.

(Дополнительные) входные параметры

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

function y = myFunction(one,two,three)

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

Совет

Когда вы задаете функцию с несколькими аргументами ввода или вывода, перечисляете любые обязательные аргументы сначала. Это упорядоченное расположение позволяет вам вызывать свою функцию, не задавая дополнительные аргументы.

Содержимое функций и файлов

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

Программные файлы могут содержать несколько функций. Если файл содержит только функциональные определения, первая функция является основной функцией и является функцией, которую MATLAB сопоставляет с именем файла. Функции, которые следуют за основной функцией или кодом скрипта, являются вызванными локальными функциями. Локальные функции только доступны в файле.

Операторы end

Функции заканчиваются любым end оператор, конец файла или линия определения для локальной функции, какой бы ни на первом месте. end оператор требуется если:

  • Любая функция в файле содержит вложенную функцию (функция, полностью содержавшая в ее родительском элементе).
  • Функция является локальной функцией в файле функции, и любая локальная функция в файле использует end ключевое слово.
  • Функция является локальной функцией в файле скрипта.

Несмотря на то, что это является иногда дополнительным, использовать end для лучшей удобочитаемости кода.

Смотрите также

Похожие темы

  • Файлы и Папки, что MATLAB доступы
  • Базирование и функционирование рабочих областей
  • Типы функций
  • Добавление функций к скриптам

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *