如何在 Matlab 中将拟合曲线的结果从"cfit"转换为实际数组数据?



我想拟合某条曲线。我的数据存储在";x〃;以及";y2";。为了拟合该曲线;适合";。

我的例子:

x = [20 30 40 50 60 70 80 90 100 200];
y = [4.229 2.514 1.714 1.143 0.8 0.629 0.514 0.4 0.349 0.057];
p_0 = 2*10^(-5);
y2 = 10.^(y/20)*p_0;
[xData,yData] = prepareCurveData(x,y2);
fit_type = 'pchipinterp';
[fitresult] = fit(xData,yData,ft);

结果";fitresult";现在被存储在MATLAB工作空间中;1x1cfit";对象有没有办法从fitresult中获得一个实际的数组,数组长度可以手动定义?(例如MATLAB工作区:fitresult:1x3841(

编辑您的脚本:

fit_type = 'pchipinterp';
[fitresult] = fit(xData,yData,fit_type);

fitresult有两类系数保形(pchip(插值,每类中都有一个分量p以及fitresult(x(fitresult=

Shape-preserving (pchip) interpolant:
fitresult(x) = piecewise polynomial computed from p
Coefficients:
p = coefficient structure

要提取结果,请将这些代码行添加到您的脚本中(名称最多为u(:

1. piecewise_polynomial_computed_from_p = fitresult(x)      
2. coefficient_structure = fitresult.p

这里coefficient_structure是一个构造函数:

coefficient_structure = 
form: 'pp'
breaks: [20 30 40 50 60 70 80 90 100 200]
coefs: [9x4 double]
pieces: 9
order: 4
dim: 1

要从中提取结果,请键入例如:

Breaks = coefficient_structure.breaks

结果是:

Breaks =
20    30    40    50    60    70    80    90   100   200

最新更新