Take values from array within nested loop

4 views (last 30 days)
Smita Banerjee
Smita Banerjee on 30 Jun 2016
Answered: dpb on 30 Jun 2016
Want to implement
RMSE= sqrt{1/K* summation k=1:K [(theta_est-theta_true)]^2}
theta_est and theta_true may be of different length
error=0;
for k=1:K
for m=1:length(theta_est)
for t=1:length(theta_true)
error=error+(theta_est(m,k)-theta_true(t,k)).^2
RMSE=sqrt(1/K*error)
end
end
end

Answers (1)

dpb
dpb on 30 Jun 2016
"Implement RMSE= sqrt{1/K* summation k=1:K [(theta_est-theta_true)]^2} [where] theta_est and theta_true may be of different length"
Well, there's no definition of a difference where there aren't comparable entities so your choice is either compute over the min(length(theta_est),length(theta_true)) or, if the two vectors represent a given time of commensurate duration, interpolate the shorter or decimate the longer to match. The first option is simply
K=min(length(theta_est),length(theta_true));
RMSE=rms(theta_est(1:K)-theta_true(1:K)); % rms from Signal Processing Toolbox

Categories

Find more on Multidimensional Arrays 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!