为什么"sum A"与MATLAB中的"sum(A)"不一样?

7 matlab

为什么它sum Asum(A)MATLAB中的不一样?

>> A

A =

     1     2
     3     4

>> sum A

ans =

    65

>> sum(A)

ans =

     4     6
Run Code Online (Sandbox Code Playgroud)

一个更普遍的问题是:为什么要sum A工作?

kam*_*gin 11

如果你调用像这样的函数

sum A
Run Code Online (Sandbox Code Playgroud)

Matlab将第二个解释为字符串,并将其作为函数的第一个参数传递给:

sum('A')
Run Code Online (Sandbox Code Playgroud)

输出65来自65是'A'的整数表示

这是非常简洁的大量函数将字符串作为输入,比如cd 代替

cd('somedirectory/')
Run Code Online (Sandbox Code Playgroud)

你可以写

cd somedirectory/
Run Code Online (Sandbox Code Playgroud)

这是被称为命令语法和被称为这样的函数,不能有输出

以下链接包含一些其他详细信息:(http://www.mathworks.se/help/matlab/matlab_prog/command-vs-function-syntax.html)

  • 很有意思!我认为值得指出的是,无论A是什么,总和A都会返回字符A的ASCII值,无论以前的任何分配.此外,您不能将此值直接分配给其他变量,例如,try:b = sum A; 这给出了错误:意外的MATLAB表达式. (2认同)