function c=editcoeff(f) %EDITCOEFF Edit the coefficients of a fit % EDITCOEFF opens the Matlab's Array Editor to edit the coefficients % of the last fit (which is stored in the variable 'lastfit'). This may % be useful to copy/paste the fit coefficients into a spreadsheet % (see the setting 'coeffarray' in FITPARAM to change the row/column % display). % % EDITCOEFF is also available from the item 'Edit Fit Coefficients' in % the EzyFit menu, and can be automatically called after each fit (see % the setting 'editcoeffmode' in FITPARAM). % % EDITCOEFF(F) opens the Matlab's Array Editor to edit the coefficients % of the fit F. (F is a fit structure as returned by EZFIT or SHOWFIT). % % C = EDITCOEFF(...) returns a 2xN cell array, containing the % coefficients names and values. % % Example: % plotsample('power'); % f = ezfit('power'); % editcoeff(f); % % See also EZFIT, SHOWFIT, EFMENU, FITPARAM, MAKEVARFIT, OPENVAR. % F. Moisy, moisy_at_fast.u-psud.fr % Revision: 1.00, Date: 2006/02/09 % This function is part of the EzyFit Toolbox % History: % 2006/02/09: v1.00, first version. % if no input argument, use the last fit, which is stored % in the variable lastfit in the 'base' workspace: if nargin==0, if evalin('base','exist(''lastfit'',''var'')') f=evalin('base','lastfit'); else errordlg('No existing fit coefficients. First fit a curve.',... 'Edit Fit Coefficients','on'); return; end; end; if exist('fitparam.m','file'), fp=fitparam; else error('No fitparam file found.'); end; % c is a 2xN cell array containing the parameter % names and the parameter values for i=1:length(f.param); c{i,1}=f.param{i}; c{i,2}=f.m(i); end; switch fp.corrcoefmode case 'r' c{length(f.param)+1,1}='R'; c{length(f.param)+1,2}=f.r; case 'r2', c{length(f.param)+1,1}='R^2'; c{length(f.param)+1,2}=f.r^2; end; % displays the coeff in row or in column: if ~strcmpi(fp.coeffarray,'row'), c=c'; end; % creates a variable called 'FitCoefficients' in the matlab 'base' workspace % (this is required for using openvar) assignin('base','FitCoefficients',c) % calls the Array Editor with this variable "FitCoefficients". openvar('FitCoefficients'); if nargout==0 clear c end;