how to calculate mean without considering the zero in matrix
5 次查看(过去 30 天)
显示 更早的评论
I want to calculate MSE of two frames. I am ignoring the nan values by creating a mask associated to the motion compensated frame which has 1 wherever there is a non nan value in mcframe and 0 wherever there is nan. When I caluculate the MSE i only want to caluclate the error where mask is 1. I am using the following code but the value i am getting is pretty high. Not sure if I am doing the right thing here.
Attached are the values of mask, diff and mcframe matrices
mcframe(isnan(mcframe)) = 0;
diff = (mcframe - double(current_pic)).^2;
mse = sum(sum(diff))./sum(sum(mask == 1));
1 个评论
the cyclist
2020-5-19
FYI, it would be much easier for us if you had saved those variables to a *.mat file, and uploaded that.
回答(1 个)
the cyclist
2020-5-19
Presumably the easiest way to do what you want is to use the nanmean function from the Statistics and Machine Learning Toolbox, or the 'omitnan' input to the mean function.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Introduction to Installation and Licensing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!