您的位置:首页 > 编程语言 > MATLAB

求两个二维矩阵的root mean square(matlab程序)

2012-02-27 21:54 525 查看
function [rms,diffdata] = myRMS(udata, sdata)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% This function computes the difference between the two data sets
% udata and sdata (udata and sdata are of two dimension) after
% udata has been scaled to have the same mean value as the  sdata.
% It then calculates the root mean square value of the difference .
%
% Make sure udata and sdata have the same size.
%
% The code is adapted from Bragi Sveinsson's mrFieldMap, function
% mrFieldError.
%
% http://white.stanford.edu/teach/index.php/2009_Bragi_Sveinsson %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
mysize = size(udata);

if (mean(mean(udata)) == 0)
udata_i_scaled = udata;
else
udata_i_scaled = mean(mean(sdata))/mean(mean(udata))*udata;
end
diffdata = sdata - udata_i_scaled;

if sum(sum(diffdata.^2))==0
rms = 0;
else
rms = sqrt(1/(mysize(1)*mysize(2))*sum(sum(diffdata.^2)));
end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  matlab function