MATLAB 给定一组二维坐标,拟合曲线并且取曲线上任意点的坐标方法,或者均分定义域,得到对应值方法
2017-11-30 18:41
941 查看
Matlab是一个很强大的数据处理软件,是人们进行数据分析的得力助手。一般我们做社会调研或科学研究时,会得到很多实验数据。当需要研究两个变量之间的关系时,经常要用到曲线拟合。曲线拟合不仅能给出拟合后的关系式,还能用图形直观的展现出变量之间的关系。
其实用matlab做曲线拟合很便捷,下面将以两个变量(y=f(x))为例详细介绍:
X = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
26, 27, 28, 29];
Y = [0, 5793, 8291, 9768, 10781, 11539, 12141, 12641, 13069, 13446, 13783, 14089, 14368, 14624, 14858, 15069, 15260,
15430, 15580, 15712, 15828,
15929, 16016, 16092, 16158, 16215, 16266, 16310, 16348, 16384 ];
通过matlab将离散二维坐标生成平滑曲线如下:
详细步骤如下:
1、在“命令行窗口”输入cftool命令,会弹Curve Fitting Tool窗口:
2、在Curve Fitting Tool窗口,中第一步:选择X变量 data和Y变量 data;第二部:选择拟合的曲线类型,一般是线性拟合,高斯曲线,平滑
曲线等,根据需要选择。
第三步:选择method, 选择完后会自动完成拟合,并且给出拟合函数表达式;
3、通过Curve Fitting Tool窗口上的“文件”下的Generate Code生成matlab代码如下:
%CREATEFIT(X,Y)
% Create a fit.
%
% Data for 'test' fit:
% X Input : X
% Y Output: Y
% Output:
% fitresult : a fit object representing the fit.
% gof : structure with goodness-of fit info.
%
% 另请参阅 FIT, CFIT, SFIT.
% 由 MATLAB 于 17-Nov-2017 14:17:00 自动生成
%% Fit: 'test'.
[xData, yData] = prepareCurveData( X, Y );
% Set up fittype and options.
ft = 'linearinterp';
% Fit model to data.
[fitresult, gof] = fit( xData, yData, ft, 'Normalize', 'on' );
%y = feval(fitresult,x);%通过feval函数可以去任意x对应的y值
y = feval(fitresult,[0:0.1:29]);%将横坐标均等划分,得到Y对应的值
% Plot fit with data.
figure( 'Name', 'untitled fit 1' );
h = plot( fitresult, xData, yData );
legend( h, 'Y vs. X', 'untitled fit 1', 'Location', 'NorthEast' );
% Label axes
xlabel X
ylabel Y
grid on
---------------------------------------------------------------------just over--------------------------------------------
希望对你有所帮助!
其实用matlab做曲线拟合很便捷,下面将以两个变量(y=f(x))为例详细介绍:
X = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
26, 27, 28, 29];
Y = [0, 5793, 8291, 9768, 10781, 11539, 12141, 12641, 13069, 13446, 13783, 14089, 14368, 14624, 14858, 15069, 15260,
15430, 15580, 15712, 15828,
15929, 16016, 16092, 16158, 16215, 16266, 16310, 16348, 16384 ];
通过matlab将离散二维坐标生成平滑曲线如下:
详细步骤如下:
1、在“命令行窗口”输入cftool命令,会弹Curve Fitting Tool窗口:
2、在Curve Fitting Tool窗口,中第一步:选择X变量 data和Y变量 data;第二部:选择拟合的曲线类型,一般是线性拟合,高斯曲线,平滑
曲线等,根据需要选择。
第三步:选择method, 选择完后会自动完成拟合,并且给出拟合函数表达式;
3、通过Curve Fitting Tool窗口上的“文件”下的Generate Code生成matlab代码如下:
%CREATEFIT(X,Y)
% Create a fit.
%
% Data for 'test' fit:
% X Input : X
% Y Output: Y
% Output:
% fitresult : a fit object representing the fit.
% gof : structure with goodness-of fit info.
%
% 另请参阅 FIT, CFIT, SFIT.
% 由 MATLAB 于 17-Nov-2017 14:17:00 自动生成
%% Fit: 'test'.
[xData, yData] = prepareCurveData( X, Y );
% Set up fittype and options.
ft = 'linearinterp';
% Fit model to data.
[fitresult, gof] = fit( xData, yData, ft, 'Normalize', 'on' );
%y = feval(fitresult,x);%通过feval函数可以去任意x对应的y值
y = feval(fitresult,[0:0.1:29]);%将横坐标均等划分,得到Y对应的值
% Plot fit with data.
figure( 'Name', 'untitled fit 1' );
h = plot( fitresult, xData, yData );
legend( h, 'Y vs. X', 'untitled fit 1', 'Location', 'NorthEast' );
% Label axes
xlabel X
ylabel Y
grid on
---------------------------------------------------------------------just over--------------------------------------------
希望对你有所帮助!
相关文章推荐
- Matlab画平滑曲线的两种方法( 拟合或插值后再用plot即可)
- Matlab画平滑曲线的两种方法( 拟合或插值后再用plot即可)
- matlab 万能实用的非线性曲线拟合方法
- matlab 万能实用的线性曲线拟合方法
- Matlab的曲线拟合工具箱CFtool使用简介及一种非线性函数的曲线拟合方法(函数公式: k = A*(T^a)*exp(E/T) )
- JAVA函数实现任意给定一组数, 找出任意数相加等于某数或者在一个范围
- 利用最小二乘法拟合任意次函数曲线(C#)
- 使用SendMessage方法对窗体上的控件进行截图,该方法的思想就是把控件的句柄拿到,对控件发送WM_PAINT消息,并且把希望得到图形对象的句柄当作wParam参数传过去,这样就可以在图形对象得到想要得图形。
- Matlab将散点绘制为平滑曲线的两种方法
- 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是重复的数字2或者3
- MATLAB做曲线拟合
- FOJ 2148 给定的二维坐标 能构成的凸四边形数
- C++与matlab用dll或者Lib的方式混编方法
- 利用最小二乘法拟合任意次函数曲线(C#)
- 关于在设置启动文件夹或者设置用户选项时不能得到当前用户的解决方法
- java每日一题:给定一个整数数组arr和整数target,返回两个索引值,使得这两个索引值对应的整数的和等于target。(arr中有且仅有一组)
- Matlab画平滑曲线的两种方法
- php如何通过get方法发送http请求,并且得到返回的参数
- 新浪微博 陈利人 面试题 给定k个数组,每个数组有k个整数。每个数组中选取一个整数,一共k个整数,取其和,一共可以得到k^k个和。给出方法,求得这k^k个和中,最小的k个。
- 2.如何使用matlab拟合曲线