如何解决MSE:遍历 2 个元胞数组索引的系列总和
这是我想在 MATLAB 中写出的函数:
对于我的 ŷ
和 y
,我分别使用了 rm
和 m
的索引。这是我到目前为止所拥有的:
mse = 1/n *(symsum(((rm{i}-m{i})^2),i,1,n));
我收到此错误:
pcmencdec_hw2
中的错误(第 100 行)
mse = 1/n *(symsum(((rm{i}-m{i})^2),n));
解决方法
如果元胞数组存储数值
如果元胞数组存储数值,则它们可以转换为 MATLAB 矩阵/双精度数组。可以使用 cell2mat()
函数完成此转换。可以在这两个数组之间进行逐元素减法,以找出对应元素之间的差异(这将产生与 rm
和 m
长度相同的差异数组)。通过对元素进行平方取这些差异的平方根,.^2
是下一步。 .
表示应按元素应用操作。最后,取和乘以 1/N。
%Random test data%
rm = {rand(20000,1)};
m = {rand(20000,1)};
N = length(rm);
%Converting cell arrays to matrices/double arrays%
m = cell2mat(m);
rm = cell2mat(rm);
%Vectorized approach to calculating mean square error%
MSE = (1/N)*sum((rm - m).^2);
disp(MSE);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。