Funció per convertir una estructura de dades de la PLSToolbox en un objecte PCA. La Pls toolbox per defecte no guarda les dades originals del proces, per tant perque aquest metode funcióni corrctament caldra que avans de guardar l'estructura amb la PLS Toolbox forçem que guardi totes les dades possibles. Tot i aixó no sempre es pot aconseguir fer la converssió ja que totes les configuracións possibles a PCa no tenen equivalents a la PLS toolbox ni totes les de la PLS toolbox tenen equivalents a PCA. Parametres d'entrada struct - Una estructura de dades de PLS Toolbox, Cal forçar que guardi totes les dades possibles, si no no es pot fer la converssió! vars - El nombre de variables que te el nostre proces (la toolbox no ho guarda) temps - el nombre d'instants de temps que te el nostre procés (la tolbox no ho guarda) Parametres de sortida obj - Si la conversió és possible, objecte PCA equivalent a l'estructura struct
0001 function obj = PLS2PCA( struct ,vars , temps) 0002 % Funció per convertir una estructura de dades de la PLSToolbox en un 0003 % objecte PCA. La Pls toolbox per defecte no guarda les dades originals del 0004 % proces, per tant perque aquest metode funcióni corrctament caldra que 0005 % avans de guardar l'estructura amb la PLS Toolbox forçem que guardi totes 0006 % les dades possibles. Tot i aixó no sempre es pot aconseguir fer la 0007 % converssió ja que totes les configuracións possibles a PCa no tenen 0008 % equivalents a la PLS toolbox ni totes les de la PLS toolbox tenen 0009 % equivalents a PCA. 0010 % 0011 % Parametres d'entrada 0012 % 0013 % struct - Una estructura de dades de PLS Toolbox, Cal forçar que 0014 % guardi totes les dades possibles, si no no es pot fer la 0015 % converssió! 0016 % 0017 % vars - El nombre de variables que te el nostre proces (la toolbox no 0018 % ho guarda) 0019 % 0020 % temps - el nombre d'instants de temps que te el nostre procés (la 0021 % tolbox no ho guarda) 0022 % 0023 % Parametres de sortida 0024 % 0025 % obj - Si la conversió és possible, objecte PCA equivalent a 0026 % l'estructura struct 0027 % 0028 % 0029 0030 %creem un objecte DATA on hi anirem posan totes les dades i posteriorment 0031 %crearem el model 0032 dad = DATA(); 0033 0034 %comprobem si l'objecte struct te les dades que necessitemper fer la 0035 %conversió, en cas contrari mostrarem error a l'usuari 0036 if isempty(struct.detail.data{1}) || isempty(struct.detail.data{1}.data) 0037 error('Has de guardar l''objecte PLS forçant guardar totes les dades'); 0038 end 0039 0040 %Com a nom de les dades posem el camp autor 0041 dad.setName(struct.author); 0042 0043 %Calculem el nombre de lots que tenim 0044 lots =size(struct.detail.data{1}.data,1); 0045 0046 %la toolbox guarda les dades en BW i nosatlresen 3D necessitem saber les 0047 %dimencions originals per poder desfer l'unfolding amb la funcio serdataBW 0048 dad.setRawDataBW(struct.detail.data{1}.data,vars,temps,lots); 0049 0050 %afegim les classes 0051 dad.setClass(struct.detail.class{1,1}); 0052 0053 %creem l'objecte PCA amb configuracións per defecte 0054 obj = PCA(dad); 0055 0056 %si la PLS toolbox tenia una configuració convertivle l'apliquem, si no 0057 %deixem la configuració per defecte. 0058 if strcmp(struct.detail.preprocessing{1,1}.description,'Autoscale') 0059 obj.setPCSelectionMethod(1); 0060 end 0061 if strcmp(struct.detail.preprocessing{1,1}.description,'Grupscale') 0062 obj.setPCSelectionMethod(2); 0063 end 0064 end 0065