【问题标题】:How to get mean square error in a quick way using Matlab?如何使用 Matlab 快速获得均方误差?
【发布时间】:2012-11-08 21:36:27
【问题描述】:

我不知道这是否可能,但让我解释一下我的问题

想象一下我有下面的数组

errors=[e1,e2,e3];

现在我要计算的内容如下

MSE=1/(array_lenght)*[e1^2+e2^2+e3^2];

我可以用一个循环来做这个,但我想知道有没有什么快速的方法。

【问题讨论】:

    标签: matlab mean-square-error


    【解决方案1】:

    这会找到平方误差的平均值:

    MSE = mean(errors.^2)
    

    每个元素单独平方,然后求结果向量的均值。

    【讨论】:

    • 你能告诉我“.”是什么意思吗?表示就在 ^ 之前
    • @MonsterMMORPG 它分别对每个元素进行平方,这样[1 2 3].^2 == [1 4 9]。如果你把点去掉,Matlab 对整个矩阵求平方,因为它不是一个正方形,所以这不起作用。您还可以使用 .* 进行矩阵的元素乘法。
    【解决方案2】:
    sum(errors.^2) / numel(errors)
    

    【讨论】:

      【解决方案3】:

      增权和加法可以一起进行,而不是依次进行:

      MSE = (errors*errors') / numel(errors)
      

      【讨论】:

        猜你喜欢
        • 2015-07-11
        • 2016-11-13
        • 1970-01-01
        • 2010-11-01
        • 2016-05-03
        • 1970-01-01
        • 2018-04-07
        • 2022-01-21
        • 1970-01-01
        相关资源
        最近更新 更多