[matlab学习记录02]数据拟合应用案例及结果可视化


前言

本文仅为学习matlab过程中的一些记录,奈何才疏学浅,如有错误希望各位大佬不吝赐教。

一、主要内容

1、matlab自定义函数拟合——fittype()函数

 %fittype('自定义函数','independent','自变量')
fittype('a*x^b','independent','x')    %其中a,b为函数的系数

ans = 

     General model:
     ans(a,b,x) = a*x^b       
     

2、matlab中excel文件的读写操作

 %matlab的excel文件读入
 xlsread(filename,sheet1,'A3:B741') 
 %filename为文件路径
 %sheet1为工作簿名称,一般可直接用123... 
 % 'A3:B741'为指定读入的区域

%matlab的excel文件写出
xlswrite(filename,result,sheet1,'A742:B744')
%result为写入的数据内容
%其余同上
     

3、matlab的结果的可视化——绘图设置

二、数据拟合实例

1.案例背景

在河相关系研究中,为率定河相关系公式中的河相关系系数α、β,需要根据基础数据进行数据拟合得到河相关系系数α、β。
在这里插入图片描述
下文代码实现目标,自动读取excel文件中基础数据进行数据拟合后将拟合结果写入excel中,并且绘制出原始数据点于拟合函数的图像并按相应格式保存

2.matlab代码

代码如下:

clc;clear all;close all

%% 数据导入
filename='D:\个人文件夹\matlab学习\数据拟合练习.xlsx';
num=xlsread(filename,1,'A3:B741');
x=num(:,1);
y=num(:,2);

%% 数据拟合
f=fittype('a*x^b','independent','x');   %定义函数
[model,gof]=fit(x,y,f);                 %拟合函数,model为系数结果,gof为拟合结果检验
result={'河相系数α',model.a;'河相系数β',model.b;'确定系数',gof.rsquare};
xlswrite(filename,result,1,'A742:B744');

%% 拟合结果可视化
figure(1)
set(gcf,'unit','centimeters','position',[10,10,8,5])    %画布设置
xp=min(x):0.1:max(x);
yp=model(xp);
plot(x,y,'ro','markersize',2.5,'linewidth',0.7);     %绘制原始数据点
hold on;
plot(xp,yp,'-b','linewidth',1.2);                    %绘制拟合曲线
hold off;
set(gca,'LineWidth',0.7,'FontSize',7,'FontName','Times New Roman'); %设置坐标轴
xlabel('$\mbox{\emph{H}}/m$','interpreter','latex','fontsize',9,'fontname','times new roman'); %x坐标轴标题设置
ylabel('$\sqrt{B}/H/(m^{-1/2})$','interpreter','latex','fontsize',9,'fontname','Times New Roman'); %y坐标轴标题设置
txt={['$\alpha=$',num2str(model.a)],['$\beta=$',num2str(model.b)],['$R^2=$',num2str(gof.rsquare)]};
text([20 20 20],[30 25 20],txt,'interpreter','latex','fontsize',9);%图片中设置文本

%% 图像导出
hfig = figure(1);
figWidth = 7.99;  % 设置图片宽度
figHeight = 5;    % 设置图片高度
set(hfig,'PaperUnits','centimeters'); % 图片尺寸所用单位
set(hfig,'PaperPosition',[0 0 figWidth figHeight]);
fileout = ['demo1.']; % 输出图片的文件名
print(hfig,[fileout,'tif'],'-r300','-dtiff'); % 设置图片分辨率、格式

附件

excel文件:
链接:https://pan.baidu.com/s/1gJI4mc8UIjcJ1huYGaicCA
提取码:sn4v

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值