MATLAB:曲线拟合到plotmatrix中的散乱数据

时间:2016-06-06 14:31:15

标签: matlab curve-fitting plotmatrix

下图是在MATLAB中使用[H,AX,BigAx,P] = plotmatrix(x);创建的。而不是在对角线上的散点,是否可以有一个近似曲线? enter image description here

2 个答案:

答案 0 :(得分:0)

阅读documentation,似乎这个函数只对散射有用,这是有道理的,因为矩阵中的点通常可以全部结束,拟合曲线是没有意义的。也许使用subplot()(link)会更合适并允许更多功能?

答案 1 :(得分:0)

使用plotmatrix创建绘图后,您可以遍历每个非对角线散点图,获取关联的XY数据,perform the curve fitting,然后{{ 3}}如下:

data = randn(50,3);  % Random sample data
[hScatter, hAxes] = plotmatrix(data);

for index = find(~eye(size(hScatter))).'  % Loop over off-diagonal plots
  X = get(hScatter(index), 'XData');      % Get X data
  Y = get(hScatter(index), 'YData');      % Get Y data
  betas = [ones(numel(X), 1) X(:)]\Y(:);  % Simple linear regression
  xLine = get(hAxes(index), 'XLim');      % Use axes limits for X data
  yLine = betas(1)+xLine.*betas(2);       % Compute regression line
  line(hAxes(index), xLine, yLine, 'Color', 'r');  % Plot red regression line
end

这是由此产生的情节:

plot the results