命令与函数语法

命令和函数语法

在MATLAB®,这些陈述相当于:

杜勒负载。mat %命令语法加载('durer.mat') %函数语法

这种等价有时被称为command-function二元性

所有功能都支持此标准万博1manbetx函数的语法

(output1,……,outputM] = functionName(input1, ..., inputN)

如果您不需要函数的任何输出,并且所有输入都是字符向量(即,用单引号括起来的文本),则可以使用这个更简单的方法命令语法

functionName input1……inputN

在命令语法中,您使用空格而不是逗号分隔输入,并且不要将输入参数括在括号中。命令语法总是将输入作为字符向量传递。要使用字符串作为输入,请使用函数语法。如果字符向量包含空格,请使用函数语法。

当函数输入是变量时,必须使用函数语法将值传递给函数。命令语法总是将输入作为字符向量传递,而不能传递变量值。例如,创建一个变量并调用disp函数与函数语法传递变量的值:

一个= 123;disp (A)

此代码返回预期结果,

123

不能使用命令语法来传递值一个,因为这个电话

显示A

相当于

disp('A')

并返回

一个

避免常见语法错误

假设您的工作区包含以下变量:

文件名=“accounts.txt”;一个= int8 (1:8);B =一个;

下表说明了命令语法的常见误用。

这个命令…… 相当于…… 传递值的语法正确
打开文件名 open (filename) 打开(文件名)
等位A B isequal(“A”、“B”) isequal (A, B)
strcmp(A)级int8 比较字符串(“类(A)”,“int8”) 比较字符串(类(A),“int8”)
镉根 cd(“matlabroot”) cd (matlabroot)
isnumeric 500 isnumeric(“500”) isnumeric (500)
3.499圆 圆的(“3.499”),相当于圆形([51 46 52 57 57]) 轮(3.499)
disp hello world disp(‘你好’、‘世界’) disp(“hello world”)
disp“字符串” disp(“字符串”) disp(“字符串”)

通过变量名

有些函数期望变量名是字符向量,例如保存负载清楚的,及.例如,

- file杜勒谁。垫X

关于变量的请求信息X在示例文件中durer.mat.该命令等价于

谁(' - file ', ' durer.mat ', ' X ')

如何MATLAB识别命令语法

考虑一下这个潜在的模棱两可的陈述

ls / d。

这可能是给ls与文件夹一起运行/ d。作为其参数。它还可以请求对数组进行元素除法ls,使用变量d作为除数。

如果在命令行中发出这样的语句,MATLAB可以访问当前工作区和路径来确定是否lsd是函数或变量。但是,有些组件,如代码分析器和编辑器/调试器,在操作时不引用路径或工作区。在这些情况下,MATLAB使用语法规则来确定一个表达式是否是使用命令语法的函数调用。

一般情况下,当MATLAB识别一个标识符(可以命名一个函数或变量)时,它会分析标识符后面的字符来确定表达式的类型,如下所示:

  • 等号()意味着作业。例如:

    ls = d
  • 标识符后的开括号表示函数调用。例如:

    ls('./d')
  • 标识符后面的空格(而不是潜在运算符后面的空格)表示使用命令语法的函数调用。例如:

    ls / d。
  • 一个可能的运算符两边都有空格,或者运算符两边都没有空格,意味着对变量进行操作。例如,这些语句是等价的:

    Ls ./d

因此,这个潜在的模棱两可的陈述ls / d。是打给ls使用命令语法命令。

最佳实践是避免定义与通用函数冲突的变量名,以防止任何歧义。