matlab拟合cftool怎么改线条名称?
这个问题可以这样 *** 作:
1、先命令窗口中输入下列命令
>>x=0:0.5:10
>>y=x^2-5*x
>>cftool
2、在cftool工具箱中,
1)调入x、y数据
2)选择“Polynomial”
3)选择Degree的图框的数值:2
4)选择图例,双击要修改线条名称,然后将原来的英文注解改成中文
3、修改后的效果
方法一、用数据拟合工具箱 Curve Fitting Tool打开CFTOOL工具箱。在matlab的command window中输入cftool,即可进入数据拟合工具箱。
输入两组向量x,y。
首先在Matlab的命令行输入两个向量,一个向量是你要的x坐标的各个数据,另外一个是你要的y坐标的各个数据。输入以后假定叫x向量与y向量,可以在workspace里面看见这两个向量,要确保这两个向量的元素数一致,如果不一致的话是不能在工具箱里面进行拟合的。
例如在命令行里输入下列数据:
x = [196,186, 137, 136, 122, 122, 71, 71, 70, 33]
y = [0.0126050.0131150.0168660.0147410.0223530.0192780.0418030.0380260.0381280.088196]
数据的选取。打开曲线拟合共工具界面,点击最左边的X data和Y data,选择刚才输入的数据,这时界面中会出现这组数据的散点图。
选择拟合方法,点击Fit
左侧results为拟合结果,下方表格为误差等统计数据。
方法二、用神经网络工具箱
1、打开神经网络工具箱,在command window内输入nftool,进入Neural fitting tool
2、导入数据,点击next,导入Inputs为x,Targets为y。
3、选择网络参数,点击next,选择训练集和测试集数量,点next,选隐藏层节点个数。
4、训练数据,点next,选train。
5、绘制拟合曲线,训练完成后电机plot fit
训练结果参数在训练完后自动d出
神经网络工具箱可以用command写,请搜索关键字matlab 神经网络工具箱函数。
方法三、用polyfit函数写
polyfit函数是matlab中用于进行曲线拟合的一个函数。其数学基础是最小二乘法曲线拟合原理。曲线拟合:已知离散点上的数据集,即已知在点集上的函数值,构造一个解析函数(其图形为一曲线)使在原离散点上尽可能接近给定的值。
调用方法:a=polyfit(xdata,ydata,n),
其中n表示多项式的最高阶数,xdata,ydata为将要拟合的数据,它是用数组的方式输入。输出参数a为拟合多项式 y=a1x^n+...+anx+a,共n+1个系数。
%例程A=polyfit(x,y,2)z=polyval(A,x)plot(x,y,'r*',x,z,'b')
方法四、自行写算法做拟合
请参考数值分析教科书,拟合、插值方法较多,算法并不复杂,灵活套用循环即可
以一个例子作为这篇文章的开始:
利用Matlab中的cftool寻找适当的模型对这个数据进行拟合。
发现曲线形状更像一个二次曲线或者一个指数曲线,所以决定使用二次曲线或指数曲线分别拟合选择效果好的一种。
接下来就要用到工具箱了
在命令行输入cftool
之后就会出现cftool的主界面
下面对界面进行逐一介绍:
可以看到cftool工具箱支持最多3维数据的拟合,而且还可以为数据增加权重。
在你打开工具箱之后,它会自动读取工作区的数据,你需要将其分别赋给X,Y,Z data。
左边部分:
最上面:函数类型
Polynomial:多项式
Degree:多项式阶数。
Robust:鲁棒性要求:
Off——无要求
LAR——(least absolute residual)最小绝对残差
Bisquare——赋权最小残差,给离曲线近的给予较大的权重,远的给予较小的权重。
Custom Equation:用户自定方程
下面是用户自行编写的函数形式。
指数型Exponential
举例说明到此结束,剩下的类型请读者自行探索。
在这部分中会给出函数的模型和计算出的参数值。
给出按参数拟合出的函数图像。
二次多项式:
指数型:
从二者的结果比较可以明显看出,多项式的拟合效果更好。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)