Hello,
I am working on fitting a straightline through a section of data. I have about fifty of these all on the same excel sheet. I am trying to get matlab to automatically run through all of the different data sets and output the slope and index number of each one (and possibly some other data from the excel sheet) in an array. However it is not quite working... the x vector is constant through all of the curve fitting, and only the y value changes by shifting over one column at a time, this term is then divided by a constant (vector) and this is why there is a ratio. I have pasted my code below. Any ideas?
PS. I have not worked out the display command part yet either, i am aware its not really doing anything, just trying to get the polyfit to fit all the datasets first. Thanks.
for n = 1 : 1 : 48
AmplP=data (9:10008,n);
NFFT=2^nextpow2(L); % Nyquist Frequecy maybe, length of Fourier window fP=Fs/2*linspace (0,1,NFFT/2+1); AmplP_2=AmplP (1:L); % Amplitude through all steps YP=fft (AmplP_2,NFFT)/L;
RatioP1=log(absalumYP./absYP);
clippedfP=fP(21:91); clippedRatioP1=RatioP1(21:91); clippedfP2=clippedfP(1,70); clippedRatioP12=clippedRatioP1(70,1); plot (clippedfP,clippedRatioP1) hold on % Fit a line thru the data and plot the result over the data plot temp = polyfit(clippedfP2 (n,:) ,clippedRatioP12 (n,:) ,1); % least squares fitting to a line a1 = temp(2) % y-intercept of the fitted line a2 = temp(1) % slope of fitted lines Pratiofit = a1+a2*clippedfP; plot(clippedfP,Pratiofit) axis([1*10^5 5.5*10^5 -2 5]) hold on
disp('Experiment Event Pressure SlopeP SlopeS1 SlopeS2')
end