我只是在矩阵的特定列上使用max
函数,语法让我想知道:
这个空矩阵作为第二个参数传递的是什么意思?
max(A,[],dim)
我知道这可能是为了将它与进行比较的max(A,i)
分开。但是,为什么一个空矩阵呢?
它有一定的含义吗?在这样的其他函数中使用这种参数吗?
答案 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函数中使用的空值[]
。这通常表示要使用默认值,或者更改函数的操作模式。