如何量化Matlab中wblplot生成图像的拟合优度(如r²)?
解决wblplot拟合优度量化问题
方法一:手动复现wblplot的坐标转换
wblplot本质是将数据转换为威布尔概率纸的对数坐标后绘制直线,我们可以手动复现这个过程来获取(X,Y)数据:
rng('default') % 保证可复现 r = wblrnd(1.2,1.5,50,1); % 1. 对数据排序 sorted_r = sort(r); n = length(sorted_r); % 2. 计算中位秩(wblplot默认使用的经验概率公式) p = (1:n - 0.5)/n; % 3. 转换为威布尔概率纸的坐标 X = log(sorted_r); Y = log(-log(1 - p));
方法二:从已绘制的wblplot中提取数据
如果已经运行了wblplot绘图,可以直接从坐标轴对象中提取数据:
% 获取当前坐标轴 ax = gca; % 获取绘图线条对象 line_obj = ax.Children; % 提取X、Y数据 X = line_obj.XData; Y = line_obj.YData;
计算拟合优度(R²)
拿到X和Y数据后,用fitlm拟合线性模型并提取R²:
mdl = fitlm(X, Y); r_squared = mdl.Rsquared.Ordinary; disp(['拟合优度R²:', num2str(r_squared)])
内容的提问来源于stack exchange,提问作者user2587726
相关产品推荐
相关产品推荐

