
fitting 2d data set fit function is not working
    7 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
    Asliddin Komilov
 il 1 Mar 2020
  
    
    
    
    
    Commentato: Asliddin Komilov
 il 5 Mar 2020
            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 Commenti
Risposta accettata
  Thiago Henrique Gomes Lobato
      
 il 1 Mar 2020
        
      Modificato: Thiago Henrique Gomes Lobato
      
 il 3 Mar 2020
  
      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 Commenti
  Thiago Henrique Gomes Lobato
      
 il 3 Mar 2020
				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. 
Più risposte (1)
  Asliddin Komilov
 il 4 Mar 2020
        2 Commenti
  Thiago Henrique Gomes Lobato
      
 il 4 Mar 2020
				Sometimes yes, but in your case no. In your case you got an equation that basically perfect fits your curve.  
Vedere anche
Categorie
				Scopri di più su Linear and Nonlinear Regression in Help Center e File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

