matlab三维图生成网格,三维拟合图如何将截面改为网格状?

%--------------------------------------------------------------------------

%              读取原始数据,调用regress函数作一元线性回归

%--------------------------------------------------------------------------

%*****************************读取数据,绘制散点图***************************

ClimateData = xlsread('data.xlsx');    % 从Excel文件读取数据

[mm,nn]=size(ClimateData);

if nn==3

x = ClimateData(:, 2:3);    % 提取ClimateData的第1列,即自变量

end

if nn==2

x = ClimateData(:, 2);    % 提取ClimateData的第1列,即自变量

end

y = ClimateData(:, 1);    % 提取ClimateData的第5列,即因变量

plot(x, y, 'k.', 'Markersize', 15)    % 绘制x和y的散点图

xlabel('旅客吞吐量(x)')     % 给X轴加标签

ylabel('航空收入合计(y)')    % 给Y轴加标签

%*****************************计算相关系数**********************************

if nn==3

A=[x(:,1) x(:,2) y];

R = corrcoef(A)    %计算x和y的线性相关系数矩阵R

end

if nn==2

R = corrcoef(x, y)

end

%***********************调用regstats函数作一元线性回归************************

%regstats函数会自动在自变量矩阵左侧加一列1% xdata = [ones(size(x, 1), 1), x];    % 在原始数据x的左边加一列1,即模型包含常数项

% [b, bint, r, rint, s] =

stats=regstats(y, x);    % 调用regstats函数作一元线性回归

% yhat = x*b;    % 计算y的估计值

%***********************调用regress函数作一元线性回归************************

xdata = [ones(size(x, 1), 1), x];    % 在原始数据x的左边加一列1,即模型包含常数项

[b, bint, r, rint, s] = regress(y, xdata);    % 调用regress函数作一元线性回归

% 定义元胞数组,以元胞数组形式显示系数的估计值和估计值的95%置信区间

head1 = {'系数的估计值','系数标准误差','系数的t stats','系数的P值','估计值的95%置信下限','估计值的95%置信上限'};

[head1; num2cell([b,stats.tstat.se,stats.tstat.t,stats.tstat.pval,bint])]

% 定义元胞数组,以元胞数组形式显示y的真实值、y的估计值、残差和残差的95%置信区间

head2 = {'y的真实值','y的估计值','残差','残差的95%置信下限','残差的95%置信上限'};

% 同时显示y的真实值、y的估计值、残差和残差的95%置信区间

[head2; num2cell([y, stats.yhat, r, rint])]

% 定义元胞数组,以元胞数组形式显示判定系数、F统计量的观测值、检验的p值和误差方差的估计值

head3 = {'AdjustedR^2','判定系数','F统计量的观测值','Significance F','误差方差的估计值','回归平方和ssr','残差平方和sse'};

[head3;stats.adjrsquare,  num2cell(s),   stats.fstat.ssr,    stats.fstat.sse]

% 定义元胞数组,以元胞数组形式显示杜宾沃森检验值、杜宾沃森检查p值、

head4 = {'杜宾沃森检验值','杜宾沃森检验p值','残差自由度dfe'};

[head4; num2cell([stats.dwstat.dw,stats.dwstat.pval,stats.tstat.dfe])]

%*****************************绘制二维回归直线**********************************

if nn==2  %如果只有一个自变量,则绘制二维回归图

plot(x, y, 'k.', 'Markersize', 15)    % 画原始数据散点

hold on

plot(x, stats.yhat, 'linewidth', 3)    % 画回归直线

xlabel('旅客吞吐量(x)')     % 给X轴加标签

ylabel('航空收入合计(y)')   % 给Y轴加标签

legend('原始散点','回归直线');    % 加标注框

end

%*****************************绘制三维回归图**********************************

if nn==3  %如果只有一个自变量,则绘制二维回归图

x1=x(:,1);

x2=x(:,2);

scatter3(x1,x2,y,'filled')

hold on

x1fit = min(x1):100000:max(x1);

x2fit = min(x2):100000:max(x2);

[X1FIT,X2FIT]= meshgrid (x1fit,x2fit); %//制成网格数据

YFIT = b(1) + b(2) * X1FIT + b(3) * X2FIT;

mesh(X1FIT,X2FIT,YFIT);

end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值