Каково различие между сценарием и функцией в MATLAB?

StringBuilder.Append() метод намного лучше, чем использование + оператор. Но я нашел, что, при выполнении 1 000 конкатенаций или меньше, String.Join() еще более эффективно, чем StringBuilder.

StringBuilder sb = new StringBuilder();
sb.Append(someString);

единственная проблема с String.Join состоит в том, что необходимо связать строки с общим разделителем. (Редактирование:) как @ryanversaw указанный, можно сделать строку разделителя. Пустой.

string key = String.Join("_", new String[] 
{ "Customers_Contacts", customerID, database, SessionID });
8
задан gnovice 12 May 2011 в 02:53
поделиться

1 ответ

Эта страница говорит:

Скрипты против функций

Скрипты - это m-файлы, содержащие MATLAB заявления. MATLAB `` функции '' другой тип м-файла. Самый большой разница между скриптами и функции в том, что функции имеют ввод и выходные параметры. Файлы сценария может работать только с переменными, которые жестко закодированы в их m-файл. Как вы можете видеть, функции намного больше гибкий. Поэтому они больше подходит для задач общего назначения это будет применяться к разным данные.

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

Есть еще тонкие различия между скриптами и функции. Можно придумать сценарий как макрос клавиатуры: когда вы вводите название сценария, все команды, содержащиеся в нем, выполняются так же, как если бы вы набрали эти команды в командное окно. Таким образом, все переменные, созданные в скрипт добавлены в рабочую область для текущий сеанс. Кроме того, если любая из переменных в скрипте файл имеет то же имя, что и в ваше текущее рабочее пространство, значения эти переменные в рабочей области изменено действиями в скрипте. Это может быть использовано в ваших интересах. Это также может вызывать нежелательные побочные эффекты.

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

Пример

Одно из основных различий между скриптом и функцией - это доступ к переменным в рабочей области. Например, предположим, что в рабочей области вы определили две переменные a = 10 и b = 20 . Эти переменные определяются в командной строке главного приглашения.

Файл сценария - display_mult.m

disp (a * b) ;

Набрав 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 . Также,

17
ответ дан 5 December 2019 в 10:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: