Каковы различия между файлом сценария MATLAB и файлом функции MATLAB?В чем разница между скриптом и функцией в MATLAB?
ответ
This page говорит,
Сценарии против функций
Сценарии т-файлы, содержащие MatLab заявления. MATLAB `` functions '' - это другой тип m-файла. Самая большая разница между сценариями и состоит в том, что функции имеют вход и выходные параметры. Файлы сценариев могут работать только с переменными, которые жестко закодированы в их m-файл. Как вы можете видеть, функции гораздо больше гибкий. Поэтому они более подходят для задач общего назначения , которые будут применяться к различным данным .
Сценарии полезны для задач , которые не меняются. Они также являются способом для документирования определенной последовательности действий , например, вызова функции с значениями специальных параметров, которые могут быть трудно запомнить.
Существует более тонкие различия между сценариями и функции. Сценарий можно рассматривать как в качестве макроса клавиатуры: при вводе имени сценария все содержащиеся в нем команды выполняются так же, как если бы вы ввели эти команды в командное окно. Таким образом, все переменные, созданные в сценарии , добавляются в рабочую область для текущего сеанса. Кроме того, если любая из переменных в файле сценария имеет то же имя, что и в , текущее рабочее пространство, значения те переменные в рабочей области: , измененные действиями в скрипте. Это может быть использовано в ваших интересах. Он также может вызывать нежелательные побочные эффекты.
Напротив, функциональные переменные являются , являющимися локальными для функции. (Исключение является то, что можно объявить и использовать глобальные переменные, но требует и явное действие на пользователем.) Локальная область видимости функции переменных дает большую безопасность и гибкость. Единственный способ (кроме явно объявленных глобальных переменных) для получения информации в функцию и через нее через переменные в списках параметров.
Пример
Одним из основных отличий между сценарием и функцией является доступ к переменным в рабочем пространстве. Например, предположим, что в рабочей области вы определили две переменные a = 10
и b = 20
. Эти переменные определены в командной строке основного приглашения.
файл сценария - display_mult.m
disp(a*b)
;
Typing display_mult
будет отображать продукт a
и b
в рабочем пространстве, т.е. 10*20
или 200
.
Но если вы определили функцию, называется display_mult определены в файле с таким же именем:
Функция файла - display_mult.m
function display_mult(a,b)
disp(a*b);
end
Вы должны включать в себя два переменные как аргументы вызова функции. Итак, display_mult
будет не Работаю с a
и b
не существует в рабочем пространстве функции. Вы должны включить их, запустив display_mult(a,b)
, который отобразит желаемый результат.
Простое объяснение
Каждый оператор в скрипте это эквивалентно вводу их в окне командной строки в среде MATLAB. Вы просто храните их перед собой в файле!
Функция, с другой стороны, принимает аргументы и является «новым» рабочим пространством, отделенным от основного рабочего пространства.
end
в конце вызова функции необязательно, но я хотел бы добавить его, чтобы сделать вещи организованными. Конечно, если у вас есть несколько определений функций в файле, все они должны заканчиваться end
. Кроме того, вы не можете иметь сценарий и определение функции в том же файле.
пример? Можете ли вы дать мне пример? – izzat
Добавлен пример и расширен на решение – Jacob