Take values from array within nested loop

조회 수: 4 (최근 30일)
Smita Banerjee
Smita Banerjee 2016년 6월 30일
답변: dpb 2016년 6월 30일
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

답변 (1개)

dpb
dpb 2016년 6월 30일
"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

카테고리

Help CenterFile Exchange에서 Multidimensional Arrays에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by