【问题标题】:Issue in mean square error plot均方误差图中的问题
【发布时间】:2012-07-23 02:00:48
【问题描述】:

有 2 个列向量 A、B,包含 100 个数据值。我打算使用以下代码绘制 MSE(均方误差),但我得到的只是一个点而不是线图。请帮助如何去做。

A=x(:,1);
B=y(:,1);

er=(double(A)-double(B)).^2;
row_er=mean(er,2); % variable changed
plot(row_er); 

【问题讨论】:

  • 它对我来说很好用。检查 x 和 y 的大小。

标签: matlab implementation


【解决方案1】:

这个脚本运行良好。

A = randn(10, 1);
B = randn(10, 1);
er=(double(A)-double(B)).^2;
row_e=mean(er,2);
plot(row_e)

可能你有错字 (row_er)

row_e=mean(er,2);
plot(row_er);

【讨论】:

  • 感谢您的回复,但错字是在这个论坛里,而不是在实际程序中!我也运行了你的代码,它仍然绘制一个点而不是线图。绘制均方误差的逻辑是否正确?
【解决方案2】:

请注意,命令 mean 返回一个向量的平均值(这是一个简单的值)。如果你想绘制平方误差,那么你只需 plot((A-B).^2).

但是...如果您有兴趣绘制均方误差,例如 10 个样本的平均值,您将得到一个只有 10 个点的图(100 / 10,因为每 10 个数据点被平均得到一个点)。

命令是

绘图(blkproc((A-B).^2,[10,1],'mean'))

希望对你有帮助。

【讨论】:

  • 感谢您的回复。但是,它返回一个错误>>parse inputs Invalid block function。 BLOCKPROC 返回用户函数,FUN 是一个有效的函数处理程序。
  • 另外,它没有做预期做的事情。由于数据是单列向量,mean 将导致单个值。发出命令 plot((A-B).^2)绘制一系列垂直线,Y 轴范围为 0-1,X 轴范围为 100。不知道该怎么做。
  • 该命令不是blockproc,它是它的旧版本blkproc。第一个处理@mean,第二个使用eval,所以它需要字符串。
猜你喜欢
  • 2018-02-22
  • 2014-03-22
  • 1970-01-01
  • 2020-03-29
  • 1970-01-01
  • 2020-06-22
  • 1970-01-01
  • 1970-01-01
  • 2013-05-22
相关资源
最近更新 更多