在Matlab中整个矩阵的Z得分

问题描述 投票:0回答:1

如何在Matlab中计算整个三维矩阵的z得分?

Matlab命令zscore在多维数组的一个维度中跨矢量标准化。

zscore文件:https://uk.mathworks.com/help/stats/zscore.html

matlab matrix multidimensional-array normalization
1个回答
3
投票

这里我展示了两种等效的方法:

  1. 您可以edit zscore查看函数的工作原理,或者您的问题中链接的文档给出了zscore的等式: zscore 我们可以使用meanstd(标准偏差)手动计算。 M = rand( 3, 5 ) * 10 >> M = 9.5929 1.4929 2.5428 9.2926 2.5108 5.4722 2.5751 8.1428 3.4998 6.1604 1.3862 8.4072 2.4352 1.966 4.7329 Z = ( M - mean(M(:)) ) / std(M(:)) % using M(:) to operate on the array as a vector >> Z = 1.6598 -1.0771 -0.72235 1.5583 -0.73316 0.26743 -0.71145 1.1698 -0.39899 0.5 -1.1131 1.2591 -0.7587 -0.91727 0.017644 此方法的优点是您不必使用zscore所需的统计工具箱。这个小缺点是你丢失了zscore的输入检查,如果标准偏差是0则保护。
  2. 如果你想使用zscore那么你可以使用reshape,在计算zscore之后就好像它是一个向量: Z = reshape( zscore(M(:)), size(M) ) >> Z = 1.6598 -1.0771 -0.72235 1.5583 -0.73316 0.26743 -0.71145 1.1698 -0.39899 0.5 -1.1131 1.2591 -0.7587 -0.91727 0.017644

请注意,对于矢量输入zscore(M),这两种方法的行为应与标准M相同。

© www.soinside.com 2019 - 2024. All rights reserved.