如何划分矩阵?

时间:2014-02-28 11:22:23

标签: matlab matrix

今天我遇到了一段MATLAB代码,我无法理解。它是

(Dpatch - min(Dpatch(:))) / (max(Dpatch(:)) - min(Dpatch(:)))

Dpatch这里是一个n * n矩阵。

那么在将n * n矩阵除以1 * n矩阵之后我们会得到什么?

希望得到你的帮助,谢谢你。

2 个答案:

答案 0 :(得分:1)

我认为, LuisMendo 在评论中提到的是您理解问题的线索,但值得更多解释,因为它是一种Matlab典型的,优雅但混淆的做事方式。

Normaly min仅在一个维度上运作。例如。 min(Dpatch)将返回每列的最小值。或min(Dpatch, [], 2)每行的最小值。现在Dpatch(:)将矩阵展平为一维数组,这样min(Dpatch(:))将返回矩阵中所有值的最小值,该值只是一个数字。同样适用于max

虽然这里似乎存在n * n乘1 * n除法,但实际上只有n * n乘1个元素的divsion。 (顺便说一下n * n除以1 * n 定义为类似于A*pinv(B)的反转,请参阅help slash)。

因此,正如 AkiSuihkonen 所指出的,您的代码行只是将矩阵Dpatch从其范围投影到[0, 1]范围。

答案 1 :(得分:0)

您可以将其翻译为(矩阵 - 数字)/(数字 - 数字),即(矩阵 - 数字)/数字,即矩阵(与原始数字大小相同:)