我只是max
在矩阵的特定列上使用函数,语法让我想知道:
作为第二个参数传递的这个空矩阵是什么意思?
max(A,[],dim)
我知道这可能是为了将它max(A,i)
与比较分开。但是,为什么是空矩阵?
它有一定的意义吗?这种参数是否用于其他类似的函数?
我只是max
在矩阵的特定列上使用函数,语法让我想知道:
作为第二个参数传递的这个空矩阵是什么意思?
max(A,[],dim)
我知道这可能是为了将它max(A,i)
与比较分开。但是,为什么是空矩阵?
它有一定的意义吗?这种参数是否用于其他类似的函数?
其实,你的猜测是对的。由于 Matlab 不是强类型语言,也没有经典的函数重载技术,因此函数必须通过上下文猜测参数的含义。Mathworks 想要将单个矩阵中的最大值和单个函数中的两个数组的最大值合并。
因此,他们需要以某种方式将这些案例分开。他们使用空矩阵[]
作为占位符。否则,他们将无法将案例max(A, dim)
和max(A, B)
. 他们可以为此目的使用任何特殊变量,但这[]
是基本结构。
它允许您比较两个大小相等的矩阵以找到元素最大值。请参阅文档。[]
用作输入只是一种跳到后面输入的方法。
该max
函数默认执行值对的比较。输入max(1,2)
显然会输出2
。作为另一个例子,使用max(x,0)
是一种执行 的半波整流的简洁方法x
,将 的每个值x
与 的单个值进行比较0
。要将单个矩阵的元素与该矩阵中包含的值进行比较,可以将第二个参数指定为空矩阵[]
。这作为函数的标志来比较一个矩阵中的值。
您会[]
在整个文档中看到许多 Matlab 函数中使用了一个空值。这通常表示要使用默认值,或更改函数的操作模式。