Calculating mean square difference (MSD) of two matrices

28 次查看(过去 30 天)
I would like to calculate the MSD of two matrices, but I cannot figure what MSD actually is. From my understanding, it is like this:
Im = [0 252 204;
221 135 58;
156 122 127]
Im2 = [169 250 237;
186 196 148;
227 148 4]
F2 = sum(sum(mean(Im2-Im).^2))

采纳的回答

Chunru
Chunru 2021-11-25
Im = [0 252 204;
221 135 58;
156 122 127]
Im = 3×3
0 252 204 221 135 58 156 122 127
Im2 = [169 250 237;
186 196 148;
227 148 4]
Im2 = 3×3
169 250 237 186 196 148 227 148 4
F2 = sum(sum(mean(Im2-Im).^2))
F2 = 5.4722e+03
% Mean Squared Difference
% mean diff squared all elements
F = mean((Im - Im2).^2, 'all')
F = 7.0607e+03
  3 个评论
Chunru
Chunru 2021-11-26
'all' means to sum all elements of the array. sum(sum(mean(Im2-Im).^2)) is to compute the difference (Im2-Im), then find its mean, then square, then sum up all elements.
DGM
DGM 2021-11-27
编辑:DGM 2021-11-27
If you have IPT, why not just use immse()?
Im = [0 252 204;
221 135 58;
156 122 127];
Im2 = [169 250 237;
186 196 148;
227 148 4];
% you could do all this
F = mean((Im - Im2).^2,'all')
F = 7.0607e+03
% or you could just do this
F = immse(Im,Im2)
F = 7.0607e+03

请先登录,再进行评论。

更多回答(0 个)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by