Matlab插值计算

Matlab差值计算
现有两组数据

ori_x = [0.2100,0.217338,0.218559,0.21978,0.223443,0.239316,0.261294,0.279609,0.324786,0.361416,0.421245,0.51684,0.554335,0.634921,0.713086,0.7827,0.8242];
ori_y = [0,11.46,13.67,21.60,26.05,34.84,44.36,54.04,66.44,80.13,103.42,125,133.34,141.09,159.41,170.36,199.71];

通过给出任意的x得到想要的y值,并且x的初始值会漂移(0点漂移),x小于初始值时强制y为最小值,x大于最大值时,通过线性差值拟合。
构造一个函数,函数的输入值为x值和x的初始值,输出为y值。

function  flowrate= Data_Fitting(Measuring_Voltage,Initial_Voltage)
%UNTITLED Summary of this function goes here
%   Detailed explanation goes here
%第一个参数是测量电压,第二个参数是初始0点电压
x = Initial_Voltage-0.2100;
%0.2100是原始拟合数据x的0点,是个固定值,计算0点漂移的大小
Fit_Voltage = Measuring_Voltage-x;
%测量值减去漂移值大小
ori_x = [0.2100,0.217338,0.218559,0.21978,0.223443,0.239316,0.261294,0.279609,0.324786,0.361416,0.421245,0.51684,0.554335,0.634921,0.713086,0.7827,0.8242];
ori_y = [0,11.46,13.67,21.60,26.05,34.84,44.36,54.04,66.44,80.13,103.42,125,133.34,141.09,159.41,170.36,199.71];
if Fit_Voltage<0.2100
    flowrate = 0; 
    %x小于下边界,强制为0(根据需求也可以采取线性拟合或其他拟合方式)
elseif Fit_Voltage>0.7827
    flowrate =ori_y(length(ori_y-1))*(Fit_Voltage-ori_x(length(ori_x)))/(ori_x(length(ori_x)-1)-ori_x(length(ori_x)))+ori_y(length(ori_y))*(Fit_Voltage-ori_x(length(ori_x)-1))/(ori_x(length(ori_x))-ori_x(length(ori_x)-1));
    %x大于上边界,采取线性拟合
else
    flowrate =interp1(ori_x,ori_y,Fit_Voltage);
    %边界内数据采取线性差值计算
end
end
%x = [0.2100,0.217338,0.218559,0.21978,0.223443,0.239316,0.261294,0.279609,0.324786,0.361416,0.421245,0.51684,0.554335,0.634921,0.713086,0.7827,0.8242];
%for i = 1:16
% yy(i) = Data_Fitting(x(i),0.2100);
%end
%测试代码

检验代码

x = [0.2100,0.217338,0.218559,0.21978,0.223443,0.239316,0.261294,0.279609,0.324786,0.361416,0.421245,0.51684,0.554335,0.634921,0.713086,0.7827,0.8242];
for i = 1:17
 yy(i) = Data_Fitting(x(i),0.2100);
end

检验结果为
在这里插入图片描述
测试代码

Data_Fitting(0.3,0.2100);
Data_Fitting(0.1,0.2100);
Data_Fitting(0.85,0.2100)

测试结果为

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值