【问题标题】:RMSE of (x,y) coordinates(x,y) 坐标的 RMSE
【发布时间】:2013-05-05 14:30:09
【问题描述】:

我有一个笛卡尔平面坐标 (X,Y) 值的数据集,我想找到这些点的 RMSE 到 1 个坐标 (x1,y1)。所以基本上,(X,Y) 在 (x1,y1) 附近,我想找到它们的 RMSE。

任何人都可以帮助我,因为我不确定我这样做是否正确:

我正在这样做:

    Err = Err + sqrt[(X(i) - x1)^2 + (Y(i) - y1)^2]     - - - - Previous error + current error (Distance between points)

    RMSE = sqrt[(1/no_Of_Points)*Err^2]

这是正确的吗?

我在 MATLAB 中执行此操作,如果需要,请随时编写代码。

这是我的代码:

    RMSEright = 0;
    countright = 0;

    for i = 1:1:size(VarName1,1)
        [x,y] = pol2cart(VarName2(i,1), VarName1(i,1));
        if x > 0
            RMSEright = RMSEright + (((featureright(1,1) - x)^2)+((featureright(1,2) - y)^2))^0.5;
            countright = countright + 1;
        end
    end

    RMSEright = ((1/countright)*RMSEright)^0.5

谢谢!

【问题讨论】:

  • 如果我错了,请纠正我,但是当您执行(((featureright(1,1) - x)^2)+((featureright(1,2) - y)^2))^0.5 时,您会得到每个(x,y) 点和(featureright(1,2),featureright(1,2)) 之间的距离。如果xy 具有正态(高斯)分布,那么到特定点的距离分布取决于该点的位置,因此在这种情况下,RMSE 可能会欺骗您。你确定你需要这个吗? x-featureright(1,1)y-featureright(1,2) 的 RMSE 可能更适合?
  • 那么将 RMSE 分别用于 x 值和 y 值?

标签: matlab dataset coordinates cartesian


【解决方案1】:

我可以在您的代码中看到您有兴趣测量中心右侧的点的 RMSE x_centerx(1) > x_center(1) 所在的点。

您可以将其矢量化并避免使用循环。让z = z = [X Y];,然后z = z(z(:,1) > z_center(1), :);

然后,计算 RMSE,sqrt(mean(vecnorm(z-z_center, 2, 2).^2))

这是一个示例代码:

% Center point
z_center = [1 1];
plot(z_center(1), z_center(2),'r*'); hold on;

% Data Points
X = [1.2256; 1.2931; 0.1213; 1.0387; 0.5158; 1.5895; 1.1485; 1.5914; 0.6550; 0.8026];
Y = [0.9002; 0.2724; 1.0856; 0.0871; 1.2780; 0.8944; 0.9888; 0.3219; 1.2895; 1.0577];
z = [X Y];
plot(z(:,1), z(:,2),'*');

% Select "right" points
z = z(z(:,1) > z_center(1), :);

% Compute RMSE
sqrt(mean(vecnorm(z-z_center, 2, 2).^2))
plot(z(:,1), z(:,2),'oc');

legend('center', 'points', 'right points');

返回

ans = 0.6710

还有情节

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-16
    • 1970-01-01
    • 2011-03-08
    • 2015-05-23
    • 1970-01-01
    • 2013-12-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多