我可以将矩阵表示为数字

时间:2017-03-21 11:53:42

标签: math matrix linear-algebra algebra

这对你们来说可能是一个非常简单的问题。

我想将整个矩阵作为单个数字来表示。例如,

说我有一个3 * 3矩阵如下:

[1 2 3,4 5 6,7 8 9]

我可以将此矩阵表示为单个数字吗?

在问过这个问题之后,让我告诉你我为什么要这样做。

我有2个矩阵,我希望将2个矩阵的差异作为单个数字。我真正想要的是找出不同/相似的2个矩阵如何用单个数字(而不是矩阵)表示。

3 个答案:

答案 0 :(得分:2)

有一整套函数采用矩阵并生成标量数:请参阅https://en.wikipedia.org/wiki/Matrix_norm如果您只想要一个简单的推荐,请使用Frobenius规范。在Python中:

import numpy as np
frobenius = lambda matrix: np.sqrt(np.sum(matrix ** 2))

(或者,只需使用scipy.linalg.norm(matrix, 'fro')!请参阅scipy.linalg.norm文档,其中列出了它支持的许多规范。)

现在。如果您想将 两个矩阵之间的相似性量化为数字,请使用差异的范数:

frobenius(matrix1 - matrix2)

不要先取规范然后再减去它们,这不是测量矩阵距离的可靠方法。(即frobenius(matrixA) - frobenius(matrixB) # BAD BAD BAD!。))

答案 1 :(得分:1)

您希望两个矩阵之间的差异为单个数字。因此,您不希望将两个矩阵表示为一个数字然后采取差异 - 这会起作用,但它会破坏信息。

如果矩阵大小相同,则采用均方根偏差。 a {0] [0] - b [0] [0]平方等。然后求和,取平均值和平方根(按此顺序)。

答案 2 :(得分:0)

您可以从矩阵空间到自然数集定义双射函数f

f: M -> N

您可以使用哈希函数以算法方式实现此方法。