No BSD License  

Highlights from
First-order multivariate calibration

image thumbnail
from First-order multivariate calibration by Alejandro Olivieri
Graphical interface for many multivariate calibration methods.

MVC1.m
%			INSTRUCTIONS FOR USING MVC1.M
%
%IMPORTANT INFORMATION: DETAILS ON HOW TO USE MVC1.M WITH AN EXAMPLE DATA FILE ARE GIVEN
%IN THE DOCUMENT 'HOW TO WORK WITH THE EXAMPLE DATA FILE.PDF' WHICH IS IN THE ZIPPED FILE
%'EXAMPLE_DATA.ZIP'
%
%
%1)	Place all relevant files, i.e., calibration spectra, calibration concentrations,
%	new sample spectra, test concentrations, etc. in the working directory.
%	Admitted file types:
%		Calibration concentrations	Text file with one column of concentrations
% 		Calibration spectra		Filenames in a text file with one column of filenames 
%						Spectra in text files with one or two columns (no headings)
%		Calibration matrix		Text file with I columns and J rows
%	Concentrations, spectra or matrices for new samples should be as those for calibration.
%
%2)	Run mvc1.m
%
%3)	Working method
%	HLA/XS	  Hybrid linear analysis developed by Xu and Schechter (Ref. 1)
%	HLA/GO	  Hybrid linear analysis developed by Goicoechea and Olivieri (Ref.1) 
%	NAP/CLS	  Net analyte preprocessing followed by CLS (Ref. 1)
%	PLS-1	  Partial least squares (Ref. 2)
%	PCR	  Principal component regression (Ref. 2)
%	OSC/PLS	  Orthogonal signal correction (Fearn's) followed by PLS (Ref. 3)
%	NAP/PLS	  Net analyte preprocessing followed by PLS (Ref. 4)
%	DOSC/PLS  Direct orthogonal signal correction followed by PLS (Ref. 5)
%	OSC/CLS	  Orthogonal signal correction followed by CLS (Ref. 4)
%	DOSC/CLS  Direct orthogonal signal correction followed by CLS (Ref. 6)
%		
%	See references at the end of this text.
%
%4)	Number of factors
%	HLA/XS		Set Amax (extracted factors)
%	HLA/GO		Set Amax (extracted factors)
%	NAP/CLS		Set Amax (extracted factors)
%	PLS-1		Set Amax
%	PCR		Set Amax
%	OSC/PLS		Aext=extracted OSC factors; Amax=PLS factors
%	NAP/PLS		Aext=extracted NAP factors; Amax=PLS factors
%	DOSC/PLS	Aext=extracted OSC factors; Amax=PLS factors; Aaux=auxiliary factors
%			for DOSC
%	OSC/CLS		Set Amax (here the number of extracted factors before CLS)
%	DOSC/CLS	Set Aext and Amax (here the number of auxiliary and extracted factors
%			respectively before CLS)
%
%5)	Spectral regions 
%	Leave blank if the full spectra will be used. 
%	Otherwise, select the regions using blank spaces, i.e., '10 50 60 100' means using sensors 
%	10-50 and 60-100.
%
%6)	Sample type
%	Unknowns: if you have sample(s) of unknown concentration(s).
%	Test set: if you have a set of samples of known concentration.
%
%7)	Calibration data and Prediction data
%	X_vectors: each sample is a one-column file
%	X,Y_vectors: each sample is a two-columns file
%	Matrix: all samples are in a single matrix (JxI) file (J=sensors, I=samples)
%
%8)	Filenames
%	Select filenames and extensions. 
%	Calibration y: text file with calibration concentrations (one column)
%	Calibration x files: text file with filenames of calibration spectra (one column)
%	Calibration X matrix: filename of calibration matrix (I columns and J rows)
%	New y: text file with concentrations of new samples (one column)
%	New x files: text file with filenames of new spectra (one column)
%	New X matrix: filename of test matrix (Iv columns and J rows)
%	
%9)	Calibration samples excluded
%	If you wish to exclude samples from calibration, simply type the sample numbers
%	separated by blanks. Otherwise, leave blank.
%
%10)	Unknown samples excluded
%	Same as 9) when a validation set is employed.
%
%11)	Mean Centering
%	Default option which can be removed.
%
%12)	MSC
%	Check if you wish to preprocess spectra with Multiplicative Scatter Correction
%
%13)	SNV
%	Check if you wish to preprocess spectra with Standard Normal Variate (0/1 scale)
%
%14)	Min/Max
%	Check if you wish to preprocess spectra with min/max (-1/1 scale)
%
%15)	Derivative
%	Check if you wish to apply spectral derivative. Select derivative order (zero
%	order means smoothing), degree of polynomial expression and number of points
%	to evaluate the derivative using the Savitzky-Golay method.
%	IMPORTANT: the order for multiple preprocessing is
%		Derivative
%		MSC
%		Scaling
%		Centering
%
%16)	Uncertainty
%	This is used to estimate standard deviation in predicted concentrations.
%	If left blank, the default options are than uncertainty in calibration concentrations
%	and signals are estimated from the regression, and level is set at 95%.
%	Otherwise, enter the desired values.
%
%17)	Save results
%	Check to save relevant prediction results
%
%18)	CV
%	Runs leave-one-out (or leave-more-out) cross-validation. If two samples are left, the
%	search is comprehensive, while for more than two it is random.
%
%19)	CV plots
%	Shows relevant statistical plots for cross-validation.
%
%20)	CV outliers
%	Check for outliers in cross-validation
%
%21)	Predict
%	Predict concentration in unknowns
%
%22)	RMSEP plots
%	Shows relevant statistical plots for prediction
%
%23)	Model plots
%	Plots model regression and other parameters
%
%24)	Spectra
%	Plots raw and preprocessed spectra (both calibration and unknowns).
%
%25)	NASRP plot
%	Plots NASRP for the selected sample
%
%26)	Outliers plot
%	Plots of prediction ouliers
%
%27)	Save screen
%	Saves all parameters for the next MVC1 session.
%
%28)	3D-RMSE
%	Calculates a three-dimensional plot of PRESS/ RMSEP as a funcion of starting sensor and
%	window range. 
%   Set 3D-method: 
%   PRESS(CV): minimizes PRESS of cross-validation
%   3 Part of Cal Set: randomly divides calibration set in training/test (three times and averages RMSEP)
%   RMSEP Test Set: minimized RMSEP for the test set (only if sample type is test set)
%   Provide a sensible spectral window.
%
%29)	3D-EI
%	Calculates a three-dimensional plot of error indicator as a funcion of starting 
%	sensor and window range. Provide a sensible spectral window.
%		For a set of samples calculates average EI.
%
%	References
%
%1.	Goicoechea, HC and Olivieri, AC, Trends Anal. Chem.  19, 599 (2000).
%2.	Haaland, DM and Thomas, EV, Anal. Chem. 60, 1193 (1988).
%3.	Fearn, T, Chemom. Intell. Lab. Syst. 50, 47 (2000).
%4.	Goicoechea, HC and Olivieri, AC, Chemometrics Intell. Lab. Syst. 56, 73 (2001).
%5.	Westerhuis, JA, de Jong, S and Smilde, AK, Chemom. Intell. Lab. Syst, 56, 13 (2001).
%6.	Rodrguez, D, Boschetti, CE and Olivieri, AC, Analyst 127, 304 (2002).
%

clear, close all
warning off

load init_values
save temp_values

figure(1)
set(1,'NumberTitle','off','Color',[0,0.8,0.8],'Name','FIRST-ORDER MULTIVARIATE CALIBRATION',...
    'Position',[350 250 560 420]);

% Method
k1_ipofmvc1=uicontrol('Style','text','BackgroundColor',[0,0.8,0.8],'String','Working method:',...
    'HorizontalAlignment','left',...
    'FontWeight','Bold',...
    'Position',[20,375,100,30]);
k2_ipofmvc1=uicontrol('Style','Popup','BackgroundColor',[1,1,1],'String',...
    'HLA/XS|HLA/GO|NAP/CLS|PLS-1|PCR|OSC/PLS|NAP/PLS|DOSC/PLS|OSC/CLS|DOSC/CLS',...
    'Value',met_ipofmvc1,'FontWeight','Bold',...
    'Position',[127,380,100,30],'CallBack','met_ipofmvc1=get(k2_ipofmvc1,''Value'');task14_arofmvc1');

% Number of factors
k3_ipofmvc1=uicontrol('Style','text','BackgroundColor',[0,0.8,0.8],'String','Number of factors:',...
    'HorizontalAlignment','left',...
    'FontWeight','Bold',...
    'Position',[20,355,120,20]);
k3a_ipofmvc1=uicontrol('Style','text','BackgroundColor',[0,0.8,0.8],'String','Amax:',...
    'HorizontalAlignment','left',...
    'Position',[20,325,120,20]);
k4_ipofmvc1=uicontrol(1,'Style','edit','BackgroundColor',[1,1,1],...
    'Position',[55,330,30,20],'String',int2str(Amax_ipofmvc1),...
    'CallBack','Amax_ipofmvc1=str2num(get(k4_ipofmvc1,''String''));');

k3b_ipofmvc1=uicontrol('Style','text','BackgroundColor',[0,0.8,0.8],'String','Aext:',...
    'HorizontalAlignment','left',...
    'Position',[95,325,120,20]);
k4a_ipofmvc1=uicontrol(1,'Style','edit','BackgroundColor',[1,1,1],...
    'Position',[125,330,30,20],'String',int2str(Aext_ipofmvc1),...
    'CallBack','Aext_ipofmvc1=str2num(get(k4a_ipofmvc1,''String''));');
k3c_ipofmvc1=uicontrol('Style','text','BackgroundColor',[0,0.8,0.8],'String','Aaux:',...
    'HorizontalAlignment','left',...
    'Position',[165,325,120,20]);
k4b_ipofmvc1=uicontrol(1,'Style','edit','BackgroundColor',[1,1,1],...
    'Position',[195,330,30,20],'String',int2str(Aaux_ipofmvc1),...
    'CallBack','Aaux_ipofmvc1=str2num(get(k4b_ipofmvc1,''String''));');

% Sensors
k8a_ipofmvc1=uicontrol('Style','text','BackgroundColor',[0,0.8,0.8],'String','Spectral regions:',...
    'FontWeight','Bold','HorizontalAlignment','left',...
    'Position',[20,290,100,20]);
k8_ipofmvc1=uicontrol(1,'Style','edit','BackgroundColor',[1,1,1],...
    'HorizontalAlignment','left',...
    'Position',[120,295,105,20],'Fontsize',[12],'String',int2str(reg_ipofmvc1),...
    'CallBack','reg_ipofmvc1=eval([''['',(get(k8_ipofmvc1,''String'')),'']'']);');

% Sample selection
k42_ipofmvc1=uicontrol('Style','edit','BackgroundColor',[1,1,1],'String','',...
    'HorizontalAlignment','left',...
    'Value',1,'Position',[460,392,80,20],'String',int2str(exccal_ipofmvc1),...
    'CallBack','exccal_ipofmvc1=eval([''['',(get(k42_ipofmvc1,''String'')),'']'']);');
k43_ipofmvc1=uicontrol('Style','edit','BackgroundColor',[1,1,1],'String','',...
    'HorizontalAlignment','left',...
    'Value',1,'Position',[460,370,80,20],'String',int2str(excval_ipofmvc1),...
    'CallBack','excval_ipofmvc1=eval([''['',(get(k43_ipofmvc1,''String'')),'']'']);');
k44_ipofmvc1=uicontrol('Style','text','BackgroundColor',[0,0.8,0.8],'String','Cal. samples excluded:',...
    'FontWeight','Bold','HorizontalAlignment','left',...
    'Position',[320,390,140,20]);
k45_ipofmvc1=uicontrol('Style','text','BackgroundColor',[0,0.8,0.8],'String','Unk. samples excluded:',...
    'FontWeight','Bold','HorizontalAlignment','left',...
    'Position',[320,370,140,20]);

k45a_ipofmvc1=uicontrol('Style','text','BackgroundColor',[0,0.8,0.8],'String','Preprocessing:',...
    'HorizontalAlignment','left',...
    'FontWeight','Bold',...
    'Position',[320,335,100,30]);

%Mean centering
k11_ipofmvc1=uicontrol('Style','checkbox','BackgroundColor',[0,0.8,0.8],'String',...
    'Mean centering',...
    'Value',cent_ipofmvc1,'FontWeight','Bold',...
    'Position',[320,320,120,31],'CallBack','cent_ipofmvc1=get(k11_ipofmvc1,''Value'');');

%MSC
k12_ipofmvc1=uicontrol('Style','checkbox','BackgroundColor',[0,0.8,0.8],'String',...
    'MSC',...
    'Value',msc_ipofmvc1,'FontWeight','Bold',...
    'Position',[320,300,160,30],'CallBack','msc_ipofmvc1=get(k12_ipofmvc1,''Value'');');

% SNV
k12a_ipofmvc1=uicontrol('Style','checkbox','BackgroundColor',[0,0.8,0.8],'String',...
    'SNV',...
    'Value',snv01_ipofmvc1,'FontWeight','Bold',...
    'Position',[400,300,160,30],'CallBack','snv01_ipofmvc1=get(k12a_ipofmvc1,''Value'');');

k12b_ipofmvc1=uicontrol('Style','checkbox','BackgroundColor',[0,0.8,0.8],'String',...
    'Min/Max',...
    'Value',snv11_ipofmvc1,'FontWeight','Bold',...
    'Position',[480,300,160,30],'CallBack','snv11_ipofmvc1=get(k12b_ipofmvc1,''Value'');');

% Derivatives
k13_ipofmvc1=uicontrol('Style','checkbox','BackgroundColor',[0,0.8,0.8],'String',...
    'Derivative',...
    'Value',deriv_ipofmvc1,'FontWeight','Bold',...
    'Position',[320,280,80,30],'CallBack',...
    'deriv_ipofmvc1=get(k13_ipofmvc1,''Value'');task14_arofmvc1');
k13a_ipofmvc1=uicontrol('Style','edit','BackgroundColor',[1,1,1],'String',int2str(order_ipofmvc1),...
    'Position',[480,280,30,20],'CallBack','order_ipofmvc1=str2num(get(k13a_ipofmvc1,''String''));');
k13b_ipofmvc1=uicontrol('Style','edit','BackgroundColor',[1,1,1],'String',int2str(degree_ipofmvc1),...
    'Position',[480,260,30,20],'CallBack','degree_ipofmvc1=str2num(get(k13b_ipofmvc1,''String''));');
k13c_ipofmvc1=uicontrol('Style','edit','BackgroundColor',[1,1,1],...
    'String',int2str(npoints_ipofmvc1),...
    'Position',[480,240,30,20],'CallBack','npoints_ipofmvc1=str2num(get(k13c_ipofmvc1,''String''));');
k13d_ipofmvc1=uicontrol('Style','text','BackgroundColor',[0,0.8,0.8],...
    'HorizontalAlignment','left',...
    'String','Order:',...
    'Position',[435,280,40,20]);
k13e_ipofmvc1=uicontrol('Style','text','BackgroundColor',[0,0.8,0.8],...
    'HorizontalAlignment','left',...
    'String','Degree:',...
    'Position',[435,260,40,20]);
k13f_ipofmvc1=uicontrol('Style','text','BackgroundColor',[0,0.8,0.8],...
    'HorizontalAlignment','left',...
    'String','Points:',...
    'Position',[435,240,40,20]);

% Save results
k14_ipofmvc1=uicontrol('Style','checkbox','BackgroundColor',[0,0.8,0.8],'String',...
    'Save Results',...
    'Value',saveres_ipofmvc1,'FontWeight','Bold',...
    'Position',[320,145,100,30],'CallBack',...
    'saveres_ipofmvc1=get(k14_ipofmvc1,''Value'');');

% Samples
k15_ipofmvc1=uicontrol('Style','text','BackgroundColor',[0,0.8,0.8],'String','Sample type:',...
    'HorizontalAlignment','left',...
    'FontWeight','Bold',...
    'Position',[20,245,80,30]);
valset_ipofmvc1=valset1_ipofmvc1-1;
k16_ipofmvc1=uicontrol('Style','Popup','BackgroundColor',[1,1,1],'String',...
    'Unknowns|Test set','Value',valset1_ipofmvc1,...
    'FontWeight','Bold',...
    'Position',[100,250,140,30],...
    'CallBack','valset1_ipofmvc1=get(k16_ipofmvc1,''Value'');valset_ipofmvc1=valset1_ipofmvc1-1;task14_arofmvc1');

% Data type
datacal_ipofmvc1=datacal1_ipofmvc1-1;dataval_ipofmvc1=dataval1_ipofmvc1-1;
k18_ipofmvc1=uicontrol('Style','text','BackgroundColor',[0,0.8,0.8],'String','Calibration data:',...
    'HorizontalAlignment','left','FontWeight','Bold',...
    'Position',[20,215,100,30]);
k19_ipofmvc1=uicontrol('Style','text','BackgroundColor',[0,0.8,0.8],'String','Prediction data:',...
    'HorizontalAlignment','left','FontWeight','Bold',...
    'Position',[140,215,100,30]);
k20_ipofmvc1=uicontrol('Style','Popup','BackgroundColor',[1,1,1],'String',...
    'X_vectors|X,Y_vectors|Matrix',...
    'Value',datacal1_ipofmvc1,'FontWeight','Bold',...
    'Position',[20,195,100,30],...
    'CallBack','datacal1_ipofmvc1=get(k20_ipofmvc1,''Value'');datacal_ipofmvc1=datacal1_ipofmvc1-1;task14_arofmvc1');

k21_ipofmvc1=uicontrol('Style','Popup','BackgroundColor',[1,1,1],'String',...
    'X_vectors|X,Y_vectors|Matrix',...
    'Value',dataval1_ipofmvc1,'FontWeight','Bold',...
    'Position',[140,195,100,30],...
    'CallBack','dataval1_ipofmvc1=get(k21_ipofmvc1,''Value'');dataval_ipofmvc1=dataval1_ipofmvc1-1;task14_arofmvc1');
k22_ipofmvc1=uicontrol('Style','text','BackgroundColor',[0,0.8,0.8],'String','Filenames:',...
    'HorizontalAlignment','left',...
    'FontWeight','Bold',...
    'Position',[20,165,80,30]);
k23a_ipofmvc1=uicontrol(1,'Style','text','BackgroundColor',[0,0.8,0.8],'String',...
    'Calibration y','HorizontalAlignment','left',...
    'Position',[20,155,150,20]);
k23_ipofmvc1=uicontrol(1,'Style','edit','BackgroundColor',[1,1,1],...
    'Position',[120,155,120,20],'String',ckname_ipofmvc1,...
    'CallBack','ckname_ipofmvc1=get(k23_ipofmvc1,''String'');');
k25a_ipofmvc1=uicontrol(1,'Style','text','BackgroundColor',[0,0.8,0.8],'String',...
    'Calibration x files','HorizontalAlignment','left',...
    'Position',[20,130,150,20]);
k25_ipofmvc1=uicontrol(1,'Style','edit','BackgroundColor',[1,1,1],...
    'Position',[120,130,120,20],'String',calname_ipofmvc1,...
    'CallBack','calname_ipofmvc1=get(k25_ipofmvc1,''String'');');
k27a_ipofmvc1=uicontrol(1,'Style','text','BackgroundColor',[0,0.8,0.8],'String',...
    'Calibration X matrix','HorizontalAlignment','left',...
    'Position',[20,105,150,20]);
k27_ipofmvc1=uicontrol(1,'Style','edit','BackgroundColor',[1,1,1],...
    'Position',[120,105,120,20],'String',Rname_ipofmvc1,...
    'CallBack','Rname_ipofmvc1=get(k27_ipofmvc1,''String'');');
k29a_ipofmvc1=uicontrol(1,'Style','text','BackgroundColor',[0,0.8,0.8],'String',...
    'New y','HorizontalAlignment','left',...
    'Position',[20,80,150,20]);
k29_ipofmvc1=uicontrol(1,'Style','edit','BackgroundColor',[1,1,1],...
    'Position',[120,80,120,20],'String',cvalname_ipofmvc1,...
    'CallBack','cvalname_ipofmvc1=get(k29_ipofmvc1,''String'');');
k31a_ipofmvc1=uicontrol(1,'Style','text','BackgroundColor',[0,0.8,0.8],'String',...
    'New x files','HorizontalAlignment','left',...
    'Position',[20,55,150,20]);
k31_ipofmvc1=uicontrol(1,'Style','edit','BackgroundColor',[1,1,1],...
    'Position',[120,55,120,20],'String',valname_ipofmvc1,...
    'CallBack','valname_ipofmvc1=get(k31_ipofmvc1,''String'');');
k33a_ipofmvc1=uicontrol(1,'Style','text','BackgroundColor',[0,0.8,0.8],'String',...
    'New X matrix','HorizontalAlignment','left',...
    'Position',[20,30,150,20]);
k33_ipofmvc1=uicontrol(1,'Style','edit','BackgroundColor',[1,1,1],...
    'Position',[120,30,120,20],'String',Rvname_ipofmvc1,...
    'CallBack','Rvname_ipofmvc1=get(k33_ipofmvc1,''String'');');

% Boton para hacer cv
k35_ipofmvc1=uicontrol('Style','pushbutton','BackgroundColor',[0.7,0.8,0.8],'String',...
    'CV',...
    'Value',1,'FontWeight','Bold',...
    'Position',[320,120,65,25],'CallBack','savt_arofmvc1;task8_arofmvc1;');

% Figures
k36_ipofmvc1=uicontrol('Style','pushbutton','BackgroundColor',[0.7,0.8,0.8],'String',...
    'CV plots',...
    'FontWeight','Bold','Enable','off',...
    'Position',[390,120,85,25],'CallBack',...
    'savt_arofmvc1;task3_arofmvc1');
k36a_ipofmvc1=uicontrol('Style','pushbutton','BackgroundColor',[0.7,0.8,0.8],'String',...
    'CV Outliers',...
    'FontWeight','Bold','Enable','off',...
    'Position',[482,120,75,25],'CallBack',...
    'savt_arofmvc1;task2_arofmvc1');

% Boton para hacer pr
k39_ipofmvc1=uicontrol('Style','pushbutton','BackgroundColor',[0.7,0.8,0.8],'String',...
    'PREDICT',...
    'FontWeight','Bold',...
    'Position',[320,85,65,25],'CallBack','savt_arofmvc1;pred_arofmvc1;');

% Figures
k39a_ipofmvc1=uicontrol('Style','pushbutton','BackgroundColor',[0.7,0.8,0.8],'String',...
    'RMSEP Plots',...
    'FontWeight','Bold','Enable','off',......
    'Position',[390,85,85,25],'CallBack',...
    'savt_arofmvc1;task4_arofmvc1');
k39b_ipofmvc1=uicontrol('Style','pushbutton','BackgroundColor',[0.7,0.8,0.8],'String',...
    'Model Plots','Enable','off',......
    'FontWeight','Bold',...
    'Position',[482,85,75,25],'CallBack',...
    'savt_arofmvc1;task5_arofmvc1');
k39c_ipofmvc1=uicontrol('Style','pushbutton','BackgroundColor',[0.7,0.8,0.8],'String',...
    'NASRP Plot',...
    'FontWeight','Bold','Enable','off',......
    'Position',[390,55,85,25],'CallBack',...
    'savt_arofmvc1;task1_arofmvc1');
k39d_ipofmvc1=uicontrol('Style','pushbutton','BackgroundColor',[0.7,0.8,0.8],'String',...
    'Outliers Plot',...
    'FontWeight','Bold','Enable','off',......
    'Position',[482,55,75,25],'CallBack',...
    'savt_arofmvc1;task6_arofmvc1');
k39e_ipofmvc1=uicontrol('Style','pushbutton','BackgroundColor',[0.7,0.8,0.8],'String',...
    'Spectra',...
    'FontWeight','Bold',...
    'Position',[320,55,65,25],'CallBack',...
    'savt_arofmvc1;task7_arofmvc1');

% Uncertainties

k46_ipofmvc1=uicontrol('Style','text','BackgroundColor',[0,0.8,0.8],'String','Uncertainty:',...
    'HorizontalAlignment','left',...
    'FontWeight','Bold',...
    'Position',[320,210,100,30]);
k47_ipofmvc1=uicontrol('Style','text','BackgroundColor',[0,0.8,0.8],'String','sc:',...
    'HorizontalAlignment','left',...
    'Position',[320,190,30,30]);
k47a_ipofmvc1=uicontrol('Style','edit','BackgroundColor',[1,1,1],...
    'Position',[345,200,40,20],'String',int2str(sdc_ipofmvc1),...
    'CallBack','sdc_ipofmvc1=str2num(get(k47a_ipofmvc1,''String''));');
k48_ipofmvc1=uicontrol('Style','text','BackgroundColor',[0,0.8,0.8],'String','sR:',...
    'HorizontalAlignment','left',...
    'Position',[400,190,30,30]);
k48a_ipofmvc1=uicontrol('Style','edit','BackgroundColor',[1,1,1],...
    'Position',[425,200,40,20],'String',int2str(sdr_ipofmvc1),...
    'CallBack','sdr_ipofmvc1=str2num(get(k48a_ipofmvc1,''String''));');
k49_ipofmvc1=uicontrol('Style','text','BackgroundColor',[0,0.8,0.8],'String','Level%:',...
    'HorizontalAlignment','left',...
    'Position',[470,190,40,30]);
k49a_ipofmvc1=uicontrol('Style','edit','BackgroundColor',[1,1,1],...
    'Position',[515,200,30,20],'String',int2str(level_ipofmvc1),...
    'CallBack','level_ipofmvc1=str2num(get(k49a_ipofmvc1,''String''));');

% 3D-PRESS/3D-RMSE/3D-EI
k52_ipofmvc1=uicontrol('Style','pushbutton','BackgroundColor',[0.7,0.8,0.8],'String',...
    '3D-RMSE',...
    'FontWeight','Bold',...
    'Position',[390,25,85,25],'CallBack',...
    'savt_arofmvc1;task12_arofmvc1');
k53_ipofmvc1=uicontrol('Style','pushbutton','BackgroundColor',[0.7,0.8,0.8],'String',...
    '3D-EI',...
    'FontWeight','Bold',...
    'Position',[482,25,75,25],'CallBack',...
    'savt_arofmvc1;task13_arofmvc1');

k54_ipofmvc1=uicontrol('Style','pushbutton','BackgroundColor',[0.7,0.8,0.8],'String',...
    'Save screen',...
    'FontWeight','Bold',...
    'Position',[300,25,85,25],'CallBack',...
    'save init_values met_ipofmvc1 Amax_ipofmvc1 Aext_ipofmvc1 Aaux_ipofmvc1 reg_ipofmvc1 exccal_ipofmvc1 excval_ipofmvc1 cent_ipofmvc1 msc_ipofmvc1 snv01_ipofmvc1 snv11_ipofmvc1 deriv_ipofmvc1 order_ipofmvc1 degree_ipofmvc1 npoints_ipofmvc1 saveres_ipofmvc1 valset1_ipofmvc1 datacal1_ipofmvc1 dataval1_ipofmvc1 ckname_ipofmvc1 calname_ipofmvc1 Rname_ipofmvc1 valname_ipofmvc1 cvalname_ipofmvc1 Rvname_ipofmvc1 sdc_ipofmvc1 sdr_ipofmvc1 level_ipofmvc1');

task14_arofmvc1

Contact us at files@mathworks.com