In MATLAB®, these statements are equivalent:
load durer.mat % Command syntax load('durer.mat') % Function syntax
This equivalence is sometimes referred to as command-function duality.
All functions support this standard function syntax:
[output1, ..., outputM] = functionName(input1, ..., inputN)
If you do not require any outputs from the function, and all of the inputs are literal strings (that is, text enclosed in single quotation marks), you can use this simpler command syntax:
functionName input1 ... inputN
With command syntax, you separate inputs with spaces rather than commas, and do not enclose input arguments in parentheses. Because all inputs are literal strings, single quotation marks are optional, unless the input string contains spaces. For example:
disp 'hello world'
When a function input is a variable, you must use function syntax
to pass the value to the function. Command syntax always passes inputs
as literal text and cannot pass variable values. For example, create
a variable and call the
disp function with function
syntax to pass the value of the variable:
A = 123; disp(A)
This code returns the expected result,
You cannot use command syntax to pass the value of
because this call
is equivalent to
Suppose that your workspace contains these variables:
filename = 'accounts.txt'; A = int8(1:8); B = A;
The following table illustrates common misapplications of command syntax.
|This Command...||Is Equivalent to...||Correct Syntax for Passing Value|
Some functions expect literal strings for variable names, such
whos. For example,
whos -file durer.mat X
requests information about variable
the example file
durer.mat. This command is equivalent
Consider the potentially ambiguous statement
This could be a call to the
ls function with
./d as its argument. It also could request
element-wise division on the array
ls, using the
d as the divisor.
If you issue such a statement at the command line, MATLAB can
access the current workspace and path to determine whether
functions or variables. However, some components, such as the Code
Analyzer and the Editor/Debugger, operate without reference to the
path or workspace. In those cases, MATLAB uses syntactic rules
to determine whether an expression is a function call using command
In general, when MATLAB recognizes an identifier (which might name a function or a variable), it analyzes the characters that follow the identifier to determine the type of expression, as follows:
An equal sign (
=) implies assignment.
An open parenthesis after an identifier implies a function call. For example:
Space after an identifier, but not after a potential operator, implies a function call using command syntax. For example:
Spaces on both sides of a potential operator, or no spaces on either side of the operator, imply an operation on variables. For example, these statements are equivalent:
ls ./ d ls./d
Therefore, the potentially ambiguous statement
ls ./d is
a call to the
ls function using command syntax.
The best practice is to avoid defining variable names that conflict with common functions, to prevent any ambiguity.