i guess I didn't write it, but I'm trying to fit the data using the given function..The only two things we have learned are polyfit and nlinfit so I know I have to use nlinfit
nlinfit using 3D coordinates
    1 Ansicht (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
Hey guys! I'm trying to figure out this problem:
z(x, y) = A exp [−(((x − B)^2/2*C^2)+ ((y − D)^2/2*E^2))]
I'm given vector data for x,y, and z
So far I have tried using
fxn=@(C,x,y) C(1)*exp (−(((x − C(2))^2/2*C(3)^2)+ ((y − C(4))^2/2*C(5)^2)));
nlinfit(x,z,fxn,[3 3 3 3 3],[],y)
but I'm not sure how to pass the arguments through. HELP!!!
Akzeptierte Antwort
  Tom Lane
    
 am 11 Apr. 2013
        I like your reasoning for using nlinfit.
I see two issues. First, use ".^" instead of "^" in your expression, because you want elementwise operations rather than matrix operations.
Second, nlinfit wants to call your function with the parameters as the first input and the X variables as the second. You have written a function that takes two different X variables as the second and third inputs. A simple way to deal with that would be to write a little converter:
otherfcn = @(C,xy) fxn(C,xy(:,1),xy(:,2));
nlinfit(x,z,otherfcn,[3 3 3 3 3])
0 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
				Mehr zu Regression finden Sie in Help Center und File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!