RMSE between two variables
조회 수: 48 (최근 30일)
이전 댓글 표시
Hello, I am really new at matlab. I am trying to create a sub-function that has an input of two vectors and output the RMSE between the values in the vectors. Anyone can help? I would love to understand step by step. thanks to anybody that can help!!
댓글 수: 0
채택된 답변
Star Strider
2018년 3월 5일
편집: MathWorks Support Team
2023년 3월 2일
UPDATE: Starting in R2022b, you can now calculate Root Mean Square Error using the built in MATLAB function ‘rmse’:
*************************************************************
‘RMSE’ of course means ‘root mean squared error’, or the square root of the mean of the squared error.
The simplest code for this is then:
V1 = rand(10,1);
V2 = rand(10,1);
RMSE = sqrt(mean((V1-V2).^2));
where the error is (V1-V2), and ‘.^2’ denotes element-wise squaring of the error (the difference between ‘V1’ and ‘V2’). The rest of the expression takes the mean of the squared differences, and sqrt takes the square root, completing the definition.
댓글 수: 12
Rachel Hall
2020년 4월 24일
@Image Analyst,
I don't think RMSE and RMS are the same; I'm currently fining that out...
Marcos Conde
2022년 1월 26일
Yes and No. Actually, RMSE=rms(E), since E(rror) is the difference. In the example above: RMSE=rms(V1-V2)
추가 답변 (1개)
Rik
2018년 3월 5일
There are two main ways of doing this: an anonymous function and a 'normal' function.
%anonymous function:
calculate_RMSE=@(a,b) sqrt(mean((a(:)-b(:)).^2));
%normal function (save this in calc_RMSE.m)
function rmse=calc_RMSE(a,b)
rmse=sqrt(mean((a(:)-b(:)).^2));
The two function can be used in the exact same way. The second option provides more options for checking if the input is correct.
참고 항목
카테고리
Help Center 및 File Exchange에서 Get Started with MATLAB에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!