Calculating mean square difference (MSD) of two matrices

15 views (last 30 days)
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))

Accepted Answer

Chunru
Chunru on 25 Nov 2021
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 Comments
Chunru
Chunru on 26 Nov 2021
'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 on 27 Nov 2021
Edited: DGM on 27 Nov 2021
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

Sign in to comment.

More Answers (0)

Categories

Find more on Images in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!