
fitting 2d data set fit function is not working
    7 ビュー (過去 30 日間)
  
       古いコメントを表示
    
    Asliddin Komilov
 2020 年 3 月 1 日
  
    
    
    
    
    コメント済み: Asliddin Komilov
 2020 年 3 月 5 日
            Hi,
this is my data set and I wanted to try to get a fit for it.
well, did not work with 
fit([x,y],z,'poly23');
first it said: Dimensions of matrices being concatenated are not consistent. 
then I made x and y the same length and 
it said: Y must be a column vector.
And now I am stack. help please.
thanks
0 件のコメント
採用された回答
  Thiago Henrique Gomes Lobato
      
 2020 年 3 月 1 日
        
      編集済み: Thiago Henrique Gomes Lobato
      
 2020 年 3 月 3 日
  
      The problem is that your z data is defined in a grid while your x and y define only the vectors of this grid. If you first actually create the grid you will be able to create the model
[xmesh,ymesh] = meshgrid(x,y);
a = fit([xmesh(:),ymesh(:)],z(:),'poly23');
figure,surf(xmesh,ymesh,z),shading interp
hold on
plot3(xmesh(:),ymesh(:),  a([xmesh(:),ymesh(:)]),'*' )

2 件のコメント
  Thiago Henrique Gomes Lobato
      
 2020 年 3 月 3 日
				a is your linear model, but you can't acess the coefficients as a(x), but rather: a.p00, a.p01,etc... You can check the equation by looking at the output of the model
a
     Linear model Poly23:
     a(x,y) = p00 + p10*x + p01*y + p20*x^2 + p11*x*y + p02*y^2 + p21*x^2*y +
                     p12*x*y^2 + p03*y^3
     Coefficients (with 95% confidence bounds):
       p00 =      0.4365  (0.405, 0.4679)
       p10 =     0.02601  (0.01672, 0.0353)
       p01 =  -0.0005043  (-0.0008066, -0.000202)
       p20 =    -0.09332  (-0.09619, -0.09046)
       p11 =   0.0002262  (0.0001687, 0.0002837)
       p02 =   1.986e-08  (-9.467e-07, 9.865e-07)
       p21 =   -7.72e-07  (-9.884e-06, 8.34e-06)
       p12 =  -2.696e-08  (-1.176e-07, 6.368e-08)
       p03 =    8.97e-12  (-1.019e-09, 1.037e-09)
x and y must have the same length and you will need to use dot operators ( .*, .^)  if you want to write the formula, although it is much easier to just give the x and y to your model as I did in the response. 
その他の回答 (1 件)
  Asliddin Komilov
 2020 年 3 月 4 日
        2 件のコメント
  Thiago Henrique Gomes Lobato
      
 2020 年 3 月 4 日
				Sometimes yes, but in your case no. In your case you got an equation that basically perfect fits your curve.  
参考
カテゴリ
				Help Center および File Exchange で Linear and Nonlinear Regression についてさらに検索
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

