我只是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 函数中使用了一个空值。这通常表示要使用默认值,或更改函数的操作模式。