使用matlab编写rmse函数
时间: 2024-10-16 18:21:13 浏览: 30
在MATLAB中,Root Mean Squared Error (RMSE)是一个评估预测值与真实值之间差异的标准度量。你可以通过以下步骤自定义一个简单版本的RMSE函数:
```matlab
function rmse_val = calculate_rmse(predictions, targets)
% 首先,检查输入是否为向量
if ~isvector(predictions) || ~isvector(targets)
error('Both predictions and targets must be vectors.');
end
% 计算误差
errors = predictions - targets;
% 平方误差
squared_errors = errors.^2;
% 取平均并开根
rmse_val = sqrt(mean(squared_errors));
end
```
这个函数接受两个参数:`predictions`是模型的预测结果,`targets`是实际的观测值。它首先检查这两个输入是否都是向量,如果不是,则抛出错误。然后计算每个预测值与对应目标值之间的差,平方这些误差,再取平均值,最后求平方根得到RMSE。
你可以像这样使用这个函数:
```matlab
preds = [1, 2, 3, 4, 5]; % 预测值
true_values = [1.5, 2.8, 3.2, 4.7, 5.1]; % 实际值
rmse = calculate_rmse(preds, true_values);
disp(['RMSE is: ', num2str(rmse)]);
```
这将会打印出RMSE的值。
阅读全文