Calculating mean square difference (MSD) of two matrices

28 vues (au cours des 30 derniers jours)
Jimmy Neutron
Jimmy Neutron le 25 Nov 2021
Modifié(e) : DGM le 27 Nov 2021
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))

Réponse acceptée

Chunru
Chunru le 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 commentaires
Chunru
Chunru le 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 le 27 Nov 2021
Modifié(e) : DGM le 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

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by