规范化矩阵以具有特定的跟踪值

时间:2016-01-09 16:02:03

标签: matlab matrix normalization

我有一个特定的矩阵X。其跟踪等于 n ,即trace(X) = n。 可以使用函数X在matlab中轻松完成normc列到1的长度的简单规范化:

New_X = normc(X)

使用函数X可以在matlab中轻松地将normr行简单归一化为1的长度:

New_X = normr(X)

我感兴趣的是将矩阵X标准化为具有等于 d 而不是 n 的迹线。我怎样才能做到这一点?任何帮助将非常感谢!!

1 个答案:

答案 0 :(得分:3)

trace和长度是不同的东西,trace是总和,而length是欧几里德长度,它被定义为平方和的平方根。如果您要转换矩阵以使跟踪为d,您可以将矩阵缩放为:

Xtfm = d*X/trace(X)

如果您要对对角线的欧几里德长度进行归一化,则可以使用以下内容:

Xtfm = d*X/norm(diag(X))