6

我只是max在矩阵的特定列上使用函数,语法让我想知道:

作为第二个参数传递的这个空矩阵是什么意思?

max(A,[],dim)

我知道这可能是为了将它max(A,i)与比较分开。但是,为什么是空矩阵?

它有一定的意义吗?这种参数是否用于其他类似的函数?

4

3 回答 3

9

其实,你的猜测是对的。由于 Matlab 不是强类型语言,也没有经典的函数重载技术,因此函数必须通过上下文猜测参数的含义。Mathworks 想要将单个矩阵中的最大值和单个函数中的两个数组的最大值合并。

因此,他们需要以某种方式将这些案例分开。他们使用空矩阵[]作为占位符。否则,他们将无法将案例max(A, dim)max(A, B). 他们可以为此目的使用任何特殊变量,但这[]是基本结构。

于 2013-06-06T07:16:46.200 回答
2

它允许您比较两个大小相等的矩阵以找到元素最大值。请参阅文档[]用作输入只是一种跳到后面输入的方法。

于 2013-06-06T07:04:02.567 回答
1

max函数默认执行值对的比较。输入max(1,2)显然会输出2。作为另一个例子,使用max(x,0)是一种执行 的半波整流的简洁方法x,将 的每个值x与 的单个值进行比较0。要将单个矩阵的元素与该矩阵中包含的值进行比较,可以将第二个参数指定为空矩阵[]。这作为函数的标志来比较一个矩阵中的值。

您会[]在整个文档中看到许多 Matlab 函数中使用了一个空值。这通常表示要使用默认值,或更改函数的操作模式。

于 2013-06-06T07:21:28.687 回答