Matlab 二元数据相关性分析及拟合曲线绘制
首先,需要准备两列数据,假设分别为 x 和 y。
- 计算相关系数和 p 值
使用 Matlab 中的 corrcoef 函数可以计算出 x 和 y 的相关系数矩阵,其中 (1,2) 或 (2,1) 位置上的值即为相关系数。例如:
corr_matrix = corrcoef(x, y);
corr = corr_matrix(1,2);
同时,可以使用 Matlab 中的 corrcoef 函数计算出相关系数的 p 值。例如:
[p, ~] = corrcoef(x, y);
p_value = p(1,2);
- 绘制散点图和拟合曲线
使用 Matlab 中的 scatter 函数可以绘制出 x 和 y 的散点图。例如:
scatter(x, y);
然后,使用 Matlab 中的 polyfit 函数可以拟合出 x 和 y 之间的线性关系,并返回拟合曲线的系数。例如:
coefficients = polyfit(x, y, 1);
最后,使用 Matlab 中的 plot 函数可以绘制出拟合曲线。例如:
hold on
x_range = min(x):0.1:max(x);
y_range = polyval(coefficients, x_range);
plot(x_range, y_range, 'r');
hold off
完整的代码如下:
% 准备数据
x = [1, 2, 3, 4, 5];
y = [1.5, 3.3, 4.2, 4.8, 5.5];
% 计算相关系数和 p 值
corr_matrix = corrcoef(x, y);
corr = corr_matrix(1,2);
[p, ~] = corrcoef(x, y);
p_value = p(1,2);
% 绘制散点图和拟合曲线
scatter(x, y);
coefficients = polyfit(x, y, 1);
hold on
x_range = min(x):0.1:max(x);
y_range = polyval(coefficients, x_range);
plot(x_range, y_range, 'r');
hold off
% 显示相关系数和 p 值
disp(['相关系数为:', num2str(corr)]);
disp(['p值为:', num2str(p_value)]);
运行以上代码,可以得到如下的散点图和拟合曲线:

原文地址: https://www.cveoy.top/t/topic/nFap 著作权归作者所有。请勿转载和采集!