Matlab:max(A,[],dim)中的第二个参数是什么意思?

时间:2013-06-06 06:52:34

标签: matlab

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

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

max(A,[],dim)

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

它有一定的含义吗?在这样的其他函数中使用这种参数吗?

3 个答案:

答案 0 :(得分:8)

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

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

答案 1 :(得分:2)

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

答案 2 :(得分:1)

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

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