exponenta event banner

синтаксис

Два способа вызвать функции MATLAB

Описание

Можно вызвать функции MATLAB® с помощью или синтаксиса команд или синтаксиса функций, как описано ниже.

Синтаксис команд

Вызов функции в этом синтаксисе состоит из имени функции, сопровождаемого одним или несколькими аргументами, разделенными пробелами:

functionname arg1 arg2 ... argn

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

Примеры синтаксиса команд:

save mydata.mat x y z
import java.awt.Button java.lang.String

Аргументы обработаны как векторы символов. Смотрите примеры ниже при Передаче параметров.

Синтаксис функций

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

functionname(arg1, arg2, ..., argn)

Можно присвоить вывод функции к одному или нескольким выходным значениям. При присвоении больше чем одной выходной переменной разделите переменные запятыми или пробелами и заключите их в квадратные скобки ([]):

[out1,out2,...,outn] = functionname(arg1, arg2, ..., argn)

Примеры синтаксиса функций:

copyfile('srcfile', '..\mytests', 'writable')
[x1,x2,x3,x4] = deal(A{:})

Аргументы передаются функции значением. Смотрите примеры ниже при Передаче параметров.

Передача параметров

При вызывании функции с помощью синтаксиса команд MATLAB передает аргументы как векторы символов. При использовании синтаксиса функций аргументы передаются значением.

В следующем примере присвойте значение A и затем вызовите disp на переменной, чтобы отобразиться, значение передало. Вызов disp с синтаксисом команд передает имя переменной, 'A':

A = pi;
disp A
   A

в то время как синтаксис функций передает значение, присвоенное A:

A = pi;
disp(A)
   3.1416

Следующий пример передает два вектора символов strcmp для сравнения. Вызывание функции с синтаксисом команд сравнивает имена переменных, 'str1' и 'str2':

str1 = 'one';    str2 = 'one';
strcmp str1 str2
ans =
     0        (unequal)

в то время как синтаксис функций сравнивает значения, присвоенные переменным, 'one' и 'one':

str1 = 'one';    str2 = 'one';
strcmp(str1, str2)
ans =
     1        (equal)

Передача векторов символов

При использовании синтаксиса функций, чтобы передать вектор символов функции, необходимо заключить вектор символов в одинарные кавычки, ('text'). Например, чтобы создать новую папку под названием myapptests, использовать

mkdir('myapptests')

С другой стороны, переменные, которые содержат векторы символов, не должны быть заключены в кавычки:

folder = 'myapptests';
mkdir(folder)