function cpca_gui_behavior % Extract the principle component and the component loading from % the data using CPCA.cdata % %Author: Liang Wang, ver:1.0, 09/09/2008 %Email: wanglbit@gmail.com format compact % Create and then hide the GUI as it is being constructed. close(findall(0,'type','figure'));%close all figure hMainFigure = figure('MenuBar','none','Visible','off', 'HandleVisibility','callback',... 'Toolbar','none','Position',[1000,1000,1000,1000]); %create program title titletext = uicontrol(hMainFigure,'Style','text',... 'FontSize',20,'FontWeight','bold','ForegroundColor', 'b',... 'HorizontalAlignment','center',... 'String','Constrained PCA',... 'Position',[350 700 350 35]); Again = uicontrol('Parent', hMainFigure,'Style','pushbutton','String','RunAgain',... 'Position',[100 10 60 35],... 'Tag','again',... 'Callback',@again_Callback); %create a menu bar menu menuoption = uimenu(hMainFigure,'Enable', 'off','Label','Options'); % menuoption1 = uimenu(menuoption,'Label','Figure'); % menuoption2 = uimenu(menuoption,'Label','Table'); %create two panels dataselection = uipanel('Parent',hMainFigure,'Title','Select data',... 'FontSize',10,'FontWeight','bold','Position',[.1 .73 .8 .10]); funcselection = uipanel('Parent',hMainFigure,'Title','Set function',... 'FontSize',10,'FontWeight','bold','Position',[.1 .20 .8 .50]); typeselection = uipanel('Parent',hMainFigure,'Title','Select output',... 'FontSize',10,'FontWeight','bold','Position',[.5 .02 .4 .15]); %panels within panels zselect = uipanel('Parent',funcselection,'Title','Z functions',... 'FontSize',8,'FontWeight','bold','Position',[.05 .60 .41 .35]); gselect = uipanel('Parent',funcselection,'Title','G functions',... 'FontSize',8,'FontWeight','bold','Position',[.54 .60 .41 .35]); hselect = uipanel('Parent',funcselection,'Title','H functions',... 'FontSize',8,'FontWeight','bold','Position',[.05 .20 .41 .35]); aselect = uipanel('Parent',funcselection,'Title','A functions',... 'FontSize',8,'FontWeight','bold','Position',[.54 .20 .41 .35]); %Buttongroup for data selection selectZ = uicontrol('Parent', dataselection,'Style','pushbutton','String','Select Z',... 'Position',[30,33,60,25],... 'Tag','selectZ',... 'Callback',@selectZ_Callback); Zlabel = uicontrol('Parent', dataselection,'Style','pushbutton','String','Zlabel',... 'Position',[105,33,60,25],... 'Tag','Zlabel',... 'Callback',@selectZlabel_Callback); Zdirectory = uicontrol(dataselection,'Style','edit',... 'FontSize',8,'HorizontalAlignment','center',... 'String','','backgroundColor', [1 1 1],... 'Tag','Zdirectory',... 'Position',[30,18,135,15]); selectG = uicontrol('Parent', dataselection,'Style','pushbutton','String','Select G',... 'Position',[225,33,60,25],... 'Tag','selectG',... 'Callback',@selectG_Callback); Glabel = uicontrol('Parent', dataselection,'Style','pushbutton','String','Glabel',... 'Position',[300,33,60,25],... 'Tag','Glabel',... 'Callback',@selectGlabel_Callback); Gdirectory = uicontrol(dataselection,'Style','edit',... 'FontSize',8,'HorizontalAlignment','center',... 'String','','backgroundColor', [1 1 1],... 'Tag','Gdirectory',... 'Position',[225,18,135,15]); selectH = uicontrol('Parent', dataselection,'Style','pushbutton','String','Select H',... 'Position',[420,33,60,25],... 'Tag','selectH',... 'Enable', 'on','Callback',@selectH_Callback); Hdirectory = uicontrol(dataselection,'Style','edit',... 'FontSize',8,'HorizontalAlignment','center',... 'String','','backgroundColor', [1 1 1],... 'Tag','Hdirectory',... 'Position',[420,18,135,15]); Hlabel = uicontrol('Parent', dataselection,'Style','pushbutton','String','Hlabel',... 'Position',[495,33,60,25],.... 'Tag','Hlabel',... 'Callback',@selectHlabel_Callback); selectA = uicontrol('Parent', dataselection,'Style','pushbutton','String','Select A',... 'Position',[615,33,60,25],... 'Tag','selectA',... 'Enable', 'on','Callback',@selectA_Callback); Adirectory = uicontrol(dataselection,'Style','edit',... 'FontSize',8,'HorizontalAlignment','center',... 'String','','backgroundColor', [1 1 1],... 'Tag','Adirectory',... 'Position',[615,18,135,15]); Alabel = uicontrol('Parent', dataselection,'Style','pushbutton','String','Alabel',... 'Position',[690,33,60,25],.... 'Tag','Alabel',... 'Callback',@selectAlabel_Callback); %Radiogroup for data processing colcenter = uicontrol('Parent', funcselection,'Style','radiobutton',... 'String','Mean center columns',... 'Position',[50,315,155,25],... 'Tag','colcenter',... 'Enable', 'off',... 'Callback',@colcenter_Callback); colcenterG = uicontrol('Parent', funcselection,'Style','radiobutton',... 'String','Mean center columns',... 'Position',[440,315,155,25],... 'Tag','colcenterG',... 'Enable', 'off',... 'Callback',@colcenterG_Callback); colcenterH = uicontrol('Parent', funcselection,'Style','radiobutton',... 'String','Mean center columns',... 'Position',[50,165,155,25],... 'Tag','colcenterH',... 'Enable', 'off',... 'Callback',@colcenterH_Callback); colcenterA = uicontrol('Parent', funcselection,'Style','radiobutton',... 'String','Mean center columns',... 'Position',[440,165,155,25],... 'Tag','colcenterA',... 'Enable', 'off',... 'Callback',@colcenterA_Callback); %zvalue = uicontrol('Parent', funcselection,'Style','radiobutton',... % 'String','Z scores',... % 'Position',[30,20,100,25],... % 'Tag','zscore',... % 'Enable', 'off',... % 'Callback',@zscore_Callback); normalization = uicontrol('Parent', funcselection,'Style','radiobutton',... 'String','Standardize variance',... 'Position',[50,280,155,25],... 'Tag','normalization',... 'Enable', 'off',... 'Callback',@normalization_Callback); normalizationG = uicontrol('Parent', funcselection,'Style','radiobutton',... 'String','Standardize variance',... 'Position',[440,280,155,25],... 'Tag','normalizationG',... 'Enable', 'off',... 'Callback',@normalizationG_Callback); normalizationH = uicontrol('Parent', funcselection,'Style','radiobutton',... 'String','Standardize variance',... 'Position',[50,130,155,25],... 'Tag','normalizationG',... 'Enable', 'off',... 'Callback',@normalizationH_Callback); normalizationA = uicontrol('Parent', funcselection,'Style','radiobutton',... 'String','Standardize variance',... 'Position',[440,130,155,25],... 'Tag','normalizationG',... 'Enable', 'off',... 'Callback',@normalizationA_Callback); comptext = uicontrol('Parent', funcselection,'Style','text',... 'String','Same components',... 'Position',[165,15,100,25]); componentnum = uicontrol('Parent', funcselection,'Style','edit',... 'String','3',... 'Position',[175,5,40,20],... 'backgroundColor', 'w',... 'Tag','component',... 'Enable', 'off',... 'value', 1,... 'Callback',@component_Callback); diffcomptext = uicontrol('Parent', funcselection,'Style','text',... 'String','Different components',... 'Position',[275,15,120,25]); diffcomponentnum = uicontrol('Parent', funcselection,'Style','edit',... 'String','[3 1 2 ...]',... 'Position',[290,5,85,20],... 'backgroundColor', 'w',... 'Tag','diffcomponent',... 'Enable', 'off',... 'value', 1,... 'Callback',@diffcomponent_Callback); rotation = uicontrol('Parent', funcselection,'Style','radiobutton',... 'String','Rotation',... 'Position',[50,20,100,25],... 'Tag','rotation',... 'Enable', 'off',... 'Callback',@rotation_Callback); %popupgroup for component set popup = uicontrol('Parent', typeselection,'Style','popupmenu',... 'String',{''},... 'Position',[30,20,140,15],... 'Tag','popup_menu',... 'Enable', 'off','Callback',@popup_menu_Callback); runcpca = uicontrol('Parent', hMainFigure,'Style','pushbutton',... 'String','Run CPCA','FontSize',15,'FontWeight','bold',... 'Position',[100,80,200,60],... 'Tag','runcpca',... 'Callback',@runcpca_Callback); % misc = uicontrol('Parent', hMainFigure,'Style','toggle',... % 'String','Misc','Enable', 'off',... % 'Position',[50,20,70,25],... % 'Tag','misc',... % 'Callback',@misc_Callback); help = uicontrol('Parent', hMainFigure,'Style','toggle',... 'String','Help','ForegroundColor', 'b',... 'Enable', 'on','Position',[180,10,60,35],... 'Tag','help',... 'Callback',@help_Callback); % align([bselect,bstandard,bcpca,htext,hpopup],'Left','None'); % Change units to normalized so components resize % automatically. set([hMainFigure,dataselection,funcselection,typeselection],... 'Units','normalized'); % Assign the GUI a name to appear in the window title. set(hMainFigure,'Name','Multivariate Data Analysis','NumberTitle','off') % Move the GUI to the center of the screen. movegui(hMainFigure,'center') % Make the GUI visible. set(hMainFigure,'Visible','on'); global cdata; cdata=struct; cdata.rotation=get(rotation,'value'); cdata.compnum=3;%default component number text_handle = findobj('String','3'); cdata.run=0; %run times cdata.change=0; % Z or G isn't changed cdata.Glabelflag=0; cdata.Zlabelflag=0; cdata.Hlabelflag=0; cdata.Alabelflag=0; % Callbacks for simple_gui. These callbacks automatically % have access to component handles and initialized data % because they are nested at a lower level. %Select data function again_Callback(source,eventdata) cpca_gui_behavior5 function help_Callback(source, eventdata) open Manual_CPCA.doc function selectZ_Callback(source,eventdata) global cdata; [FILE ZPATH] =uigetfile('*.mat','Select a Z mat file'); if isequal(FILE,0) return; end; %user pressed cancel cd(ZPATH); load(FILE); ZFILE=[ZPATH FILE]; if ~exist(ZFILE, 'file') set(findobj('Tag','Zdirectory'),'String','No Z.mat file found'); set(findobj('Tag','Zdirectory'),'Value',0); return end if exist('Z','var') set(findobj('Tag','Zdirectory'),'String',short_path(ZFILE)); set(findobj('Tag','Zdirectory'),'Value',1); if isfield(cdata,'Z') if any(~(size(cdata.Z)==size(Z))) || (all((size(cdata.Z)==size(Z))) && sum(sum(cdata.Z ~= Z))) cdata.Z=Z; diary on; cdata.origZ=Z; if cdata.change ==1 cdata.run=cdata.run; else cdata.change =1; cdata.run=cdata.run+1; end set(findobj('Tag','zscore'),'Enable','on'); set(findobj('Tag','colcenter'),'Enable','on'); set(findobj('Tag','normalization'),'Enable','on'); else return; end else cdata.Z=Z; cdata.origZ=Z; cdata.run=cdata.run+1; end if isfield(cdata,'Z') && isfield(cdata,'G') set(findobj('Tag','colcenter'),'Enable','on'); set(findobj('Tag','zscore'),'Enable','on'); set(findobj('Tag','component'),'Enable','on'); set(findobj('Tag','diffcomponent'),'Enable','on'); set(findobj('Tag','normalization'),'Enable','on'); set(findobj('Tag','rotation'),'Enable','on'); set(findobj('Tag','normalizationG'),'Enable','on'); set(findobj('Tag','colcenterG'),'Enable','on'); set(findobj('Tag','normalizationH'),'Enable','on'); set(findobj('Tag','colcenterH'),'Enable','on'); set(findobj('Tag','normalizationA'),'Enable','on'); set(findobj('Tag','colcenterA'),'Enable','on'); end else msgbox('The requested matrix does not exist in this file','Error'); return end function selectZlabel_Callback(source,eventdata) global cdata; [FILE ZSPATH] =uigetfile('*.mat','Select a Z label file'); if isequal(FILE,0) return; end; %user pressed cancel cd(ZSPATH); load(FILE); ZSFILE=[ZSPATH FILE]; if ~exist(ZSFILE, 'file') set(findobj('Tag','Zlabel'),'Value',0); return end cdata.Zlabelflag=1; String=[]; for labeli=1:size(Zlabel,1) String=strvcat(String,Zlabel(labeli,:)); end cdata.Zlabel=String; function selectHlabel_Callback(source,eventdata) global cdata; [FILE HSPATH] =uigetfile('*.mat','Select a Z vaiables file'); if isequal(FILE,0) return; end; %user pressed cancel cd(HSPATH); load(FILE); HSFILE=[HSPATH FILE]; if ~exist(HSFILE, 'file') set(findobj('Tag','Hlabel'),'Value',0); return end cdata.Hlabelflag=1; String=[]; for labeli=1:size(Hlabel,1) String=strvcat(String,Hlabel(labeli,:)); end cdata.Hlabel=String; function selectAlabel_Callback(source,eventdata) global cdata; [FILE ASPATH] =uigetfile('*.mat','Select a A vaiables file'); if isequal(FILE,0) return; end; %user pressed cancel cd(ASPATH); load(FILE); ASFILE=[ASPATH FILE]; if ~exist(ASFILE, 'file') set(findobj('Tag','Alabel'),'Value',0); return end cdata.Alabelflag=1; String=[]; for labeli=1:size(Alabel,1) String=strvcat(String,Alabel(labeli,:)); end cdata.Alabel=String; function selectG_Callback(source,eventdata) global cdata; [FILE GPATH] =uigetfile('*.mat','Select a G matrix file'); if isequal(FILE,0) return; end; %user pressed cancel cd(GPATH); load(FILE); GFILE=[GPATH FILE]; if ~exist(GFILE, 'file') set(findobj('Tag','Gdirectory'),'String','No G.mat file found'); set(findobj('Tag','Gdirectory'),'Value',0); return end if exist('G','var') set(findobj('Tag','Gdirectory'),'String',short_path(GFILE)); set(findobj('Tag','Gdirectory'),'Value',1); if isfield(cdata,'G') if any(~(size(cdata.G)==size(G))) || (all((size(cdata.G)==size(G))) && sum(sum(cdata.G ~= G))) cdata.G=G; cdata.origG=G; if cdata.change ==1 cdata.run=cdata.run; else cdata.change =1; cdata.run=cdata.run+1; end else return; end else cdata.G=G; cdata.origG=G; cdata.change=0; end if isfield(cdata,'Z') && (isfield(cdata,'G')|| isfield(cdata,'H') || isfield(cdata,'A')) set(findobj('Tag','colcenter'),'Enable','on'); set(findobj('Tag','zscore'),'Enable','on'); set(findobj('Tag','component'),'Enable','on'); set(findobj('Tag','diffcomponent'),'Enable','on'); set(findobj('Tag','normalization'),'Enable','on'); set(findobj('Tag','rotation'),'Enable','on'); set(findobj('Tag','normalizationG'), 'Enable','on'); set(findobj('Tag','colcenterG'), 'Enable','on'); set(findobj('Tag','normalizationH'),'Enable','on'); set(findobj('Tag','colcenterH'),'Enable','on'); set(findobj('Tag','normalizationA'),'Enable','on'); set(findobj('Tag','colcenterA'),'Enable','on'); end else msgbox('The requested matrix does not exist in this file','Error'); return end function selectGlabel_Callback(source,eventdata) global cdata; [FILE GSPATH] =uigetfile('*.mat','Select a G matrix file'); if isequal(FILE,0) return; end; %user pressed cancel cd(GSPATH); load(FILE); GSFILE=[GSPATH FILE]; if ~exist(GSFILE, 'file') set(findobj('Tag','Glabel'),'Value',0); return end cdata.Glabelflag=1; String=[]; for labeli=1:size(Glabel,1) String=strvcat(String,Glabel(labeli,:)); end cdata.Glabel=String; function selectH_Callback(source,eventdata) global cdata; [FILE HPATH] =uigetfile('*.mat','Select a H matrix file'); if isequal(FILE,0) return; end; %user pressed cancel cd(HPATH); load(FILE); HFILE=[HPATH FILE]; if ~exist(HFILE, 'file') set(findobj('Tag','Hdirectory'),'String','No H.mat file found'); set(findobj('Tag','Hdirectory'),'Value',0); return end if exist('H','var') set(findobj('Tag','Hdirectory'),'String',short_path(HFILE)); set(findobj('Tag','Hdirectory'),'Value',1); if isfield(cdata,'H') if any(~(size(cdata.H)==size(H))) || (all((size(cdata.H)==size(H))) && sum(sum(cdata.H ~= H))) cdata.H=H; cdata.origH=H; if cdata.change ==1 cdata.run=cdata.run; else cdata.change =1; cdata.run=cdata.run+1; end else return; end else cdata.H=H; cdata.origH=H; cdata.change=0; end if isfield(cdata,'Z') && (isfield(cdata,'G')|| isfield(cdata,'H') || isfield(cdata,'A')) set(findobj('Tag','colcenter'),'Enable','on'); set(findobj('Tag','zscore'),'Enable','on'); set(findobj('Tag','component'),'Enable','on'); set(findobj('Tag','diffcomponent'),'Enable','on'); set(findobj('Tag','normalization'),'Enable','on'); set(findobj('Tag','rotation'),'Enable','on'); set(findobj('Tag','normalizationG'), 'Enable','on'); set(findobj('Tag','colcenterG'), 'Enable','on'); set(findobj('Tag','normalizationH'),'Enable','on'); set(findobj('Tag','colcenterH'),'Enable','on'); set(findobj('Tag','normalizationA'),'Enable','on'); set(findobj('Tag','colcenterA'),'Enable','on'); end set(findobj('Tag','selectA'),'Enable','off'); set(findobj('Tag','Alabel'),'Enable','off'); else msgbox('The requested matrix does not exist in this file','Error'); return end function selectA_Callback(source,eventdata) global cdata; [FILE APATH] =uigetfile('*.mat','Select a A matrix file'); if isequal(FILE,0) return; end; %user pressed cancel cd(APATH); load(FILE); AFILE=[APATH FILE]; if ~exist(AFILE, 'file') set(findobj('Tag','Adirectory'),'String','No A.mat file found'); set(findobj('Tag','Adirectory'),'Value',0); return end if exist('A','var') set(findobj('Tag','Adirectory'),'String',short_path(AFILE)); set(findobj('Tag','Adirectory'),'Value',1); if isfield(cdata,'A') if any(~(size(cdata.A)==size(A))) || (all((size(cdata.A)==size(A))) && sum(sum(cdata.A ~= A))) cdata.A=A; cdata.origA=A; if cdata.change ==1 cdata.run=cdata.run; else cdata.change =1; cdata.run=cdata.run+1; end else return; end else cdata.A=A; cdata.origA=A; cdata.change=0; end if isfield(cdata,'Z') && (isfield(cdata,'G')|| isfield(cdata,'H') || isfield(cdata,'A')) set(findobj('Tag','colcenter'),'Enable','on'); set(findobj('Tag','zscore'),'Enable','on'); set(findobj('Tag','component'),'Enable','on'); set(findobj('Tag','diffcomponent'),'Enable','on'); set(findobj('Tag','normalization'),'Enable','on'); set(findobj('Tag','rotation'),'Enable','on'); set(findobj('Tag','normalizationG'), 'Enable','on'); set(findobj('Tag','colcenterG'), 'Enable','on'); set(findobj('Tag','normalizationH'),'Enable','on'); set(findobj('Tag','colcenterH'),'Enable','on'); set(findobj('Tag','normalizationA'),'Enable','on'); set(findobj('Tag','colcenterA'),'Enable','on'); end set(findobj('Tag','selectH'),'Enable','off'); set(findobj('Tag','Hlabel'),'Enable','off'); else msgbox('The requested matrix does not exist in this file','Error'); return end function colcenter_Callback(source,eventdata) global cdata; OrigZ=cdata.Z; if ~get(findobj('Tag','colcenter'),'Value') set(source,'value',0); set(findobj('Tag','popup_menu'),'Enable','off'); cdata.Z=OrigZ; if ~get(findobj('Tag','normalization'),'Value') set(findobj('Tag','zscore'),'Enable','on'); end return; end set(findobj('Tag','zscore'),'Enable','off'); if ~isfield(cdata,'Z') set(findobj('Tag','colcenter'),'Value',0); msgbox('No data file selected','Error'); return; end cdata.Z=cdata.Z-ones(size(cdata.Z,1),1)*mean(cdata.Z); V=cdata.Z; save V.mat V; function colcenterG_Callback(source,eventdata) global cdata; OrigG=cdata.G; if ~get(findobj('Tag','colcenterG'),'Value') set(source,'value',0); set(findobj('Tag','popup_menu'),'Enable','off'); cdata.G=OrigG; if ~get(findobj('Tag','normalization'),'Value') set(findobj('Tag','zscore'),'Enable','on'); end return; end set(findobj('Tag','zscore'),'Enable','off'); if ~isfield(cdata,'G') set(findobj('Tag','colcenterG'),'Value',0); msgbox('No data file selected','Error'); return; end cdata.G=cdata.G-ones(size(cdata.G,1),1)*mean(cdata.G); X=cdata.G; save X.mat X; function colcenterH_Callback(source,eventdata) global cdata; OrigH=cdata.H; if ~get(findobj('Tag','colcenterH'),'Value') set(source,'value',0); set(findobj('Tag','popup_menu'),'Enable','off'); cdata.H=OrigH; if ~get(findobj('Tag','normalization'),'Value') set(findobj('Tag','zscore'),'Enable','on'); end return; end set(findobj('Tag','zscore'),'Enable','off'); if ~isfield(cdata,'H') set(findobj('Tag','colcenterH'),'Value',0); msgbox('No data file selected','Error'); return; end cdata.H=cdata.H-ones(size(cdata.H,1),1)*mean(cdata.H); %X=cdata.G; %save X.mat X; function colcenterA_Callback(source,eventdata) global cdata; OrigA=cdata.A; if ~get(findobj('Tag','colcenterA'),'Value') set(source,'value',0); set(findobj('Tag','popup_menu'),'Enable','off'); cdata.A=OrigA; if ~get(findobj('Tag','normalization'),'Value') set(findobj('Tag','zscore'),'Enable','on'); end return; end set(findobj('Tag','zscore'),'Enable','off'); if ~isfield(cdata,'A') set(findobj('Tag','colcenterA'),'Value',0); msgbox('No data file selected','Error'); return; end cdata.A=cdata.A-ones(size(cdata.A,1),1)*mean(cdata.A); %X=cdata.G; %save X.mat X; function zscore_Callback(source,eventdata) global cdata; OrigZ=cdata.Z; if ~get(source,'Value') set(source,'value',0); set(findobj('Tag','popup_menu'),'Enable','off'); cdata.Z=OrigZ; return; end set(findobj('Tag','normalization'),'Enable','off'); set(findobj('Tag','colcenter'),'Enable','off'); if ~isfield(cdata,'Z') set(source,'Value',0); msgbox('No data file selected','Error'); return; end cdata.Z=zscore(cdata.Z); %Standardize data function normalization_Callback(source,eventdata) global cdata; OrigZ=cdata.Z; if ~get(source,'Value') set(source,'value',0); set(findobj('Tag','popup_menu'),'Enable','off'); cdata.Z=OrigZ; if ~get(findobj('Tag','colcenter'),'Value') set(findobj('Tag','zscore'),'Enable','on'); end return; end set(findobj('Tag','zscore'),'Enable','off'); if ~isfield(cdata,'Z') set(source,'Value',0); msgbox('No data file selected','Error'); return; end %B=cdata.Z; %[q r]=size(B); %C=ones(q,r)*mean(mean(B)); %B=B-C; %[o p] = size(B); %ssq=0; %ssq1=0; %for subcol=1:p % for subrow=1:o % ssq=ssq+(B(o,p))^2; % end; %end; %save ssq.mat ssq; [m,n] = size(cdata.Z); ST = std(cdata.Z,0);% Old std(X,1) cdata.Z=(cdata.Z)./ST(ones(m,1),:); %OrigZ=cdata.Z; %B=cdata.Z; %[q r]=size(B); %C=ones(q,r)*mean(mean(B)); %B=B-C; %[o p] = size(B); %ssq=0; %for subcol=1:p % for subrow=1:o % ssq1=ssq1+(B(o,p))^2; % end; %end; %save ssq1.mat ssq1; W=cdata.Z; save W.mat W; function normalizationG_Callback(source,eventdata) global cdata; OrigG=cdata.G; if ~get(source,'Value') set(source,'value',0); set(findobj('Tag','popup_menu'),'Enable','off'); cdata.G=OrigG; if ~get(findobj('Tag','colcenter'),'Value') set(findobj('Tag','zscore'),'Enable','on'); end return; end set(findobj('Tag','zscore'),'Enable','off'); if ~isfield(cdata,'Z') set(source,'Value',0); msgbox('No data file selected','Error'); return; end [k l] = size(cdata.G); ST = std(cdata.G,0); cdata.G=(cdata.G)./ST(ones(k,1),:); %origG=cdata.G; Y=cdata.G; save Y.mat Y; function normalizationH_Callback(source,eventdata) global cdata; OrigH=cdata.H; if ~get(source,'Value') set(source,'value',0); set(findobj('Tag','popup_menu'),'Enable','off'); cdata.H=OrigH; if ~get(findobj('Tag','colcenter'),'Value') set(findobj('Tag','zscore'),'Enable','on'); end return; end set(findobj('Tag','zscore'),'Enable','off'); if ~isfield(cdata,'Z') set(source,'Value',0); msgbox('No data file selected','Error'); return; end [k l] = size(cdata.H); ST = std(cdata.H,0); cdata.H=(cdata.H)./ST(ones(k,1),:); %origH=cdata.H; %Y=cdata.G; %save Y.mat Y; function normalizationA_Callback(source,eventdata) global cdata; OrigG=cdata.G; if ~get(source,'Value') set(source,'value',0); set(findobj('Tag','popup_menu'),'Enable','off'); cdata.A=OrigA; if ~get(findobj('Tag','colcenter'),'Value') set(findobj('Tag','zscore'),'Enable','on'); end return; end set(findobj('Tag','zscore'),'Enable','off'); if ~isfield(cdata,'Z') set(source,'Value',0); msgbox('No data file selected','Error'); return; end [k l] = size(cdata.A); ST = std(cdata.A,0); cdata.A=(cdata.A)./ST(ones(k,1),:); %origA=cdata.A; %Y=cdata.G; %save Y.mat Y; function rotation_Callback(source, eventdata) global cdata; if ~get(source,'Value') set(source,'value',0); set(findobj('Tag','popup_menu'),'Enable','off'); return; end if ~isfield(cdata,'Z') set(source,'Value',0); msgbox('No data file selected','Error'); return; end set(source,'value',1); set(findobj('Tag','popup_menu'),'Enable','off'); cdata.rotation=get(source,'value'); function component_Callback(source, eventdata) global cdata; if ~isfield(cdata,'Z') set(source,'Value',0); msgbox('No data file selected','Error'); return; end if str2num(get(source,'String'))> size(cdata.Z,2) msgbox({'The number of the component should be no more than the number of variables, please reset the number of the components.'},'Parameter error','warn'); return end cdata.compnum=str2num(get(source,'String')); set(findobj('Tag','popup_menu'),'Enable','off'); set(findobj('Tag','diffcomponent'),'Enable','off'); set(findobj('Tag','diffcomponent'),'value',0); function diffcomponent_Callback(source, eventdata) global cdata; if ~isfield(cdata,'Z') set(source,'Value',0); msgbox('No data file selected','Error'); return; end Z=get(findobj('Tag','Zdirectory'),'Value'); G=get(findobj('Tag','Gdirectory'),'Value'); H=get(findobj('Tag','Hdirectory'),'Value'); A=get(findobj('Tag','Adirectory'),'Value'); if Z && G && ~H && ~A if length(str2num(get(source,'String')))~= 3 msgbox({'The length of the components vector should be equal to 3, please reset the vector.'},'Parameter error','warn'); return end elseif Z && ~G && H && ~A if length(str2num(get(source,'String')))~= 3 msgbox({'The length of the components vector should be equal to 3, please reset the vector.'},'Parameter error','warn'); return end elseif Z && G && H && ~A if length(str2num(get(source,'String')))~= 5 msgbox({'The length of the components vector should be equal to 5, please reset the vector.'},'Parameter error','warn'); return end elseif Z && G && ~H && A if length(str2num(get(source,'String')))~= 4 msgbox({'The length of the components vector should be equal to 4, please reset the vector.'},'Parameter error','warn'); return end end cdata.compnum=str2num(get(source,'String')); set(findobj('Tag','popup_menu'),'Enable','off'); set(findobj('Tag','component'),'Enable','off'); set(findobj('Tag','component'),'value',0); function popup_menu_Callback(source,eventdata) % Determine the selected data set. global cdata; if ~isfield(cdata,'tsum') msgbox('Don''t run CPCA','Error'); return; end path = pwd; str = computer; direct = fullfile(path,'Results'); if exist(direct,'dir') cd(direct); else mkdir(direct); cd(direct); end str = get(findobj('Tag','popup_menu'), 'String'); val = get(findobj('Tag','popup_menu'), 'Value'); % Set current data to the selected data set. switch str{val}; case 'Table_by_G' Table=zeros(8,max(cdata.compnum)+2); per100=100; compsum=[]; colheads = strvcat('Source ', 'External '); for compi=1:max(cdata.compnum) colheads = strvcat(colheads,['Comp' num2str(compi) ' ']); end colheads = strvcat(colheads, 'Allcomp'); Table(:,1)=[ cdata.tsum per100... cdata.tsum_p cdata.total_perc_p per100... cdata.tsum_e cdata.total_perc_e per100]'; %************************************************ if length(cdata.compnum)==1 for compi=1:cdata.compnum eval(['Table(:,1+compi)=[' 'cdata.component.c' num2str(compi) '_sum '... 'cdata.component.c' num2str(compi) '_perc '... 'cdata.component.c' num2str(compi) '_sum_p '... 'cdata.component.total_c' num2str(compi) '_perc_p '... 'cdata.component.c' num2str(compi) '_perc_p '... 'cdata.component.c' num2str(compi) '_sum_e ' ... 'cdata.component.total_c' num2str(compi) '_perc_e '... 'cdata.component.c' num2str(compi) '_perc_e];']); end elseif length(cdata.compnum)>1 for compi=1:cdata.compnum(1) eval(['Table(1:2,1+compi)=['... 'cdata.component.c' num2str(compi) '_sum '... 'cdata.component.c' num2str(compi) '_perc ];']); end for compi=1:cdata.compnum(2) eval(['Table(3:5,1+compi)=['... 'cdata.component.c' num2str(compi) '_sum_p '... 'cdata.component.total_c' num2str(compi) '_perc_p '... 'cdata.component.c' num2str(compi) '_perc_p ];']); end for compi=1:cdata.compnum(3) eval(['Table(6:8,1+compi)=['... 'cdata.component.c' num2str(compi) '_sum_e '... 'cdata.component.total_c' num2str(compi) '_perc_e '... 'cdata.component.c' num2str(compi) '_perc_e ];']); end end eval(['Table(:,end)=[' 'cdata.comp_sum '... 'cdata.comp_sum_perc '... 'cdata.comp_sum_p '... 'cdata.component.total_comp_perc_p '... 'cdata.comp_sum_perc_p '... 'cdata.comp_sum_e '... 'cdata.component.total_comp_perc_e '... 'cdata.comp_sum_perc_e]; ']); %************************************************ rowheads = strvcat('Total_SS',' Perc_total','SS_Acc_G',' Perc_total',... ' Perc_Acc_G ','SS_Not_G ', ' Perc_total',' Perc_Not_G'); atab = num2cell(Table); for i=1:size(atab,1) for j=1:size(atab,2) if (isinf(atab{i,j})) atab{i,j} = []; end atab{i,j} = sprintf('%.2f', atab{i,j}); end end rowdd=cellstr(strjust(rowheads,'left')); coldd=cellstr(strjust(colheads,'left')); save rowdd.mat rowdd; save coldd.mat coldd; atabd=atab; save atabd.mat atabd; atab = [cellstr(strjust(rowheads, 'left')), atab]; atab = [cellstr(strjust(colheads, 'left'))'; atab]; wtitle = 'Table_G'; ttitle = 'SS and Percent SS'; digits = ones(1,max(cdata.compnum)+3)*(-1); disptxt = displayform(atab,digits); disptxt = [repmat('-',1,size(disptxt,2));disptxt(1,:); repmat('-',1,size(disptxt,2)); disptxt(2:end,:)] fid = fopen([wtitle '_Run' num2str(cdata.run) '_Comp'... num2str(cdata.compnum),'_Rot' num2str(get(findobj('Tag','rotation'),'value')) '.txt'],'w'); for txti=1:size(disptxt,1) fprintf(fid,'%s',disptxt(txti,:)); fprintf(fid,'\n'); end fclose(fid); commandwindow; % using the statistic toolbox %------------------------------------------------- % tblfig = statdisptable(atab, wtitle, ttitle, '', digits); % set(tblfig,'tag','table','NumberTitle','off','Toolbar','none',.... % 'MenuBar','none','MenuBar','none'); %------------------------------------------------- % ftable = figure('MenuBar','none','Visible','on',.... % 'HandleVisibility','callback','Toolbar','none',... % 'Color','w','Name','SS and Percent SS','Units','points','NumberTitle','off'); % % hAx = axes('Parent', ftable,'Position',[0.025 0.2 0.99 0.7],... % 'DefaultTextFontSize',10,... % 'DefaultTextInterpreter','Tex',... % 'DefaultTextVerticalAlignment','Baseline',... % 'Units','points',... % 'Visible','off'); % % set(ftable,'Units','normalized'); % % AxPos = get(hAx,'Position'); set(hAx,'YLim',[0,AxPos(4)]) % dy = 20; % dx = 0.15; % y = floor(AxPos(4)); % for rowtable = 1:size(atab,1) % y = y - dy; % x=0.01; % for coltable =1:size(atab,2) % if rowtable==2 && coltable==1 % text(x,y+dy/2,[repmat('------------------------', [1 size(atab,2)])]); % end % text(x,y,atab{rowtable,coltable}); % x=x+dx; % end % end case 'Total' % User selects total component. fh = figure('MenuBar','none','Visible','on', 'HandleVisibility','callback',... 'Toolbar','figure','Name','Total component loading','NumberTitle','off'); if (length(cdata.compnum)>1 && cdata.compnum(1) >=3) || (length(cdata.compnum)==1 && cdata.compnum >=3) scatter(cdata.Azr(:,1), cdata.Azr(:,2)); if cdata.Zlabelflag text(cdata.Azr(:,1), cdata.Azr(:,2), cdata.Zlabel,'FontSize',16); [m n]=size(cdata.Azr); if m<10 g=m; else g=10; end top=[]; bottom=[]; d=g+1; [a b] = size(cdata.Zlabel); start=1; for c=1:n for k=1:d top(k,c)=cdata.Azr(k,c); topstr(k,start:start+b-1)=cdata.Zlabel(k,:); %topstr2(k,:)=cdata.Zlabel(k,:); %topstr3(k,:)=cdata.Zlabel(k,:); bot(k,c)=cdata.Azr(k,c); botstr(k,start:start+b-1)=cdata.Zlabel(k,:); %botstr2(k,:)=cdata.Zlabel(k,:); %botstr3(k,:)=cdata.Zlabel(k,:); end start=start+b+1; end topback=topstr; %topback=[a b]; save topback.mat topback; start=1; for c=1:n for k=1:m h=1; %top=topback; while ((cdata.Azr(k,c)top(h,c) topp=top; toppstr=topstr; topp(h,c)=cdata.Azr(k,c); %[c d]=size(topstr(k,:)); toppstr(h,start:start+b-1)=cdata.Zlabel(k,:); while (hg) break; else topp(h,c)=top(f,c); toppstr(h,start:start+b-1)=topstr(f,start:start+b-1); end end toppstr(h,start+b)=' '; top=topp; fintop=top(1:g,1:c); topstr=toppstr; fintopstr=topstr(1:g,:); cdata.top=top; save top.mat top; cdata.fintop=fintop; save fintop.mat fintop; cdata.topstr=topstr; save topstr.mat topstr; cdata.fintopstr=fintopstr; save fintopstr.mat fintopstr; end end end for k=1:m h=1; while ((cdata.Azr(k,c)>bot(h,c)) && h<=g && hg) break; else bott(h,c)=bot(f,c); bottstr(h,start:start+b-1)=botstr(f,start:start+b-1); end end bottstr(h,start+b)=' '; bot=bott; finbot=bot(1:g,1:c); botstr=bottstr; finbotstr=botstr(1:g,:); cdata.bot=bot; save bot.mat bot; cdata.finbot=finbot; save finbot.mat finbot; cdata.botstr=botstr; save botstr.mat botstr; cdata.finbotstr=finbotstr; save finbotstr.mat finbotstr; end end end start=start+b+1; end Table2=zeros(g,2*n); per100=100; %compsum=[]; colheads=strvcat('Source'); for compi=1:n colheads = strvcat(colheads,['Comp' num2str(compi) ' High'], ['Comp' num2str(compi) 'High Val'], ['Comp' num2str(compi) 'Low' ],['Comp' num2str(compi) 'Low Val' ]); end save colheads.mat colheads; %colheads = strvcat('Source ', 'External '); %for compi=1:max(cdata.compnum) % colheads = strvcat(colheads,['Comp' num2str(compi) ' ']); %end %colheads = strvcat(colheads, 'Allcomp'); %Table2(:,1)=[ cdata.tsum per100... %cdata.tsum_p cdata.total_perc_p per100... %cdata.tsum_e cdata.total_perc_e per100]'; %************************************************ %if length(cdata.compnum)==1 % for compi=1:cdata.compnum % eval(['Table(:,1+compi)=[' 'cdata.component.c' num2str(compi) '_sum %'... % 'cdata.component.c' num2str(compi) '_perc '... % 'cdata.component.c' num2str(compi) '_sum_p '... % 'cdata.component.total_c' num2str(compi) '_perc_p '... % 'cdata.component.c' num2str(compi) '_perc_p '... % 'cdata.component.c' num2str(compi) '_sum_e ' ... % 'cdata.component.total_c' num2str(compi) '_perc_e '... % 'cdata.component.c' num2str(compi) '_perc_e];']); % end % elseif length(cdata.compnum)>1 % for compi=1:cdata.compnum(1) % eval(['Table(1:2,1+compi)=['... % 'cdata.component.c' num2str(compi) '_sum '... % 'cdata.component.c' num2str(compi) '_perc ];']); % end % for compi=1:cdata.compnum(2) % eval(['Table(3:5,1+compi)=['... % 'cdata.component.c' num2str(compi) '_sum_p '... % 'cdata.component.total_c' num2str(compi) '_perc_p '... % 'cdata.component.c' num2str(compi) '_perc_p ];']); % end % for compi=1:cdata.compnum(3) % eval(['Table(6:8,1+compi)=['... % 'cdata.component.c' num2str(compi) '_sum_e '... % 'cdata.component.total_c' num2str(compi) '_perc_e '... % 'cdata.component.c' num2str(compi) '_perc_e ];']); % end % % end % eval(['Table(:,end)=[' 'cdata.comp_sum '... % 'cdata.comp_sum_perc '... % 'cdata.comp_sum_p '... % 'cdata.component.total_comp_perc_p '... % 'cdata.comp_sum_perc_p '... % 'cdata.comp_sum_e '... % 'cdata.component.total_comp_perc_e '... % 'cdata.comp_sum_perc_e]; ']); % %************************************************ rowheads = strvcat('1','2','3','4',... '5','6','7','8','9','10'); %atab = num2cell(fintop); %atab2= num2cell(finbot); t=size(fintop,2); for i=1:size(fintop,1) %p=0; for j=1:size(fintop,2) %if (isinf(atab{i,j})) %atab{i,j} = []; %end %if %atab{i,j} = sprintf('%.2f', atab{i,j}); %end %if j>1 % p=p+3; %end Table2(i, 2*j-1)=fintop(i,j); %p=1; Table2(i, 2*j)=finbot(i,j); end end [q r]=size(fintopstr); save q.mat q; save r.mat r; rowheads1=[]; rowheads2=[]; for i=1:q %i=1; %j=1; s=r/t; u=s; starts=1; for j=1:t %matr(i,j)=mat2cell(fintopstr(i,starts:u)); %matri(i,j)=mat2cell(finbotstr(i,starts:u)); rowheads1=strvcat(rowheads1,[fintopstr(i,starts:u)],[finbotstr(i,starts:u)]); if j==t save rowheads1.mat rowheads1; save j.mat j; end starts=starts+s; u=u+s; if u > r u=r; end end rowheads2=strvcat(rowheads2,rowheads1); end %save matr.mat matr; %save matri.mat matri; %for i=1:size(matr,1) %p=0; %for j=1:size(matr,2) % if j>1 % p=p+3; % end %matrf=cell2mat(matr); %matrif=cell2mat(matri); %save matrf.mat matrf; %save matrif.mat matrif; %Table2(i,j+p)=matr(i,j); %if p==0 % continue; %else %Table2(i,j+p-2)=matri(i,j); %end %end %end atab2=[]; %save atab.mat atab; %save Table2.mat Table2; atab2=[cellstr(strjust(rowheads,'left')),atab2]; abc=cellstr(strjust(rowheads1,'left')); startt=1; for d=1:q cba(d,1:2*t)=abc(startt:startt+2*t-1,1)'; startt=startt+2*t; end save cba.mat cba; save abc.mat abc; save atab2.mat atab2; save Table2.mat Table2; Table22=num2cell(Table2); save rowheads2.mat rowheads2; for b=1:2*n atab2=[atab2,Table22(:,b),cba(:,b)]; end atab2=[cellstr(strjust(colheads,'left'))';atab2]; atab22=atab2; save atab22.mat atab22; %atab2=[cellstr(strjust(colheads,'left'))'; atab]; %rowd=cellstr(strjust(rowheads,'left')); %cold=cellstr(strjust(colheads,'left')); %save rowd.mat rowd; %save cold.mat cold; %atab = [cellstr(strjust(rowheads,'left')), atab]; %atabb=atab; %save atabb.mat atabb; %atab = [cellstr(strjust(colheads,'left'))'; atab]; wtitle = 'Table_Extremes'; ttitle = 'SS and Percent SS'; digits = ones(1,4*n+1)*(-1); disptxt = displayform(atab2,digits); disptxt = [repmat('-',1,size(disptxt,2));disptxt(1,:); repmat('-',1,size(disptxt,2)); disptxt(2:end,:)] fid = fopen([wtitle '_Run' num2str(cdata.run) '_Comp'... num2str(cdata.compnum),'_Rot' num2str(get(findobj('Tag','rotation'),'value')) '.txt'],'w'); for txti=1:size(disptxt,1) fprintf(fid,'%s',disptxt(txti,:)); fprintf(fid,'\n'); end fclose(fid); commandwindow; else text(cdata.Azr(:,1), cdata.Azr(:,2), num2str([1:size(cdata.Z,2)]')); end if (length(cdata.compnum)>1 && cdata.compnum(1) >=3) || (length(cdata.compnum)==1 && cdata.compnum >=3) title('Only present the first 3 dimensions','fontsize',9,'fontweight','bold'); end %xlabel('Total 1','fontsize',9,'fontweight','bold'); xlabel('Total 1','fontsize',9,'fontweight','bold'); ylabel('Total 2','fontsize',9,'fontweight','bold'); %zlabel('Total 3', 'fontsize',9,'fontweight','bold'); elseif (length(cdata.compnum)>1 && cdata.compnum(1) ==2) || (length(cdata.compnum)==1 && cdata.compnum ==2) scatter(cdata.Azr(:,1), cdata.Azr(:,2)); if cdata.Zlabelflag text(cdata.Azr(:,1), cdata.Azr(:,2),cdata.Zlabel); [m n]=size(cdata.Azr); if m<10 g=m; else g=10; end top=[]; bottom=[]; d=g+1; [a b] = size(cdata.Zlabel); start=1; for c=1:n for k=1:d top(k,c)=cdata.Azr(k,c); topstr(k,start:start+b-1)=cdata.Zlabel(k,:); %topstr2(k,:)=cdata.Zlabel(k,:); %topstr3(k,:)=cdata.Zlabel(k,:); bot(k,c)=cdata.Azr(k,c); botstr(k,start:start+b-1)=cdata.Zlabel(k,:); %botstr2(k,:)=cdata.Zlabel(k,:); %botstr3(k,:)=cdata.Zlabel(k,:); end start=start+b+1; end topback=topstr; %topback=[a b]; save topback.mat topback; start=1; for c=1:n for k=1:m h=1; %top=topback; while ((cdata.Azr(k,c)top(h,c) topp=top; toppstr=topstr; topp(h,c)=cdata.Azr(k,c); %[c d]=size(topstr(k,:)); toppstr(h,start:start+b-1)=cdata.Zlabel(k,:); while (hg) break; else topp(h,c)=top(f,c); toppstr(h,start:start+b-1)=topstr(f,start:start+b-1); end end toppstr(h,start+b)=' '; top=topp; fintop=top(1:g,1:c); topstr=toppstr; fintopstr=topstr(1:g,:); cdata.top=top; save top.mat top; cdata.fintop=fintop; save fintop.mat fintop; cdata.topstr=topstr; save topstr.mat topstr; cdata.fintopstr=fintopstr; save fintopstr.mat fintopstr; end end end for k=1:m h=1; while ((cdata.Azr(k,c)>bot(h,c)) && h<=g && hg) break; else bott(h,c)=bot(f,c); bottstr(h,start:start+b-1)=botstr(f,start:start+b-1); end end bottstr(h,start+b)=' '; bot=bott; finbot=bot(1:g,1:c); botstr=bottstr; finbotstr=botstr(1:g,:); cdata.bot=bot; save bot.mat bot; cdata.finbot=finbot; save finbot.mat finbot; cdata.botstr=botstr; save botstr.mat botstr; cdata.finbotstr=finbotstr; save finbotstr.mat finbotstr; end end end start=start+b+1; end Table2=zeros(g,2*n); per100=100; %compsum=[]; colheads=strvcat('Source'); for compi=1:n colheads = strvcat(colheads,['Comp' num2str(compi) ' High'], ['Comp' num2str(compi) 'High Val'], ['Comp' num2str(compi) 'Low' ],['Comp' num2str(compi) 'Low Val' ]); end save colheads.mat colheads; %colheads = strvcat('Source ', 'External '); %for compi=1:max(cdata.compnum) % colheads = strvcat(colheads,['Comp' num2str(compi) ' ']); %end %colheads = strvcat(colheads, 'Allcomp'); %Table2(:,1)=[ cdata.tsum per100... %cdata.tsum_p cdata.total_perc_p per100... %cdata.tsum_e cdata.total_perc_e per100]'; %************************************************ %if length(cdata.compnum)==1 % for compi=1:cdata.compnum % eval(['Table(:,1+compi)=[' 'cdata.component.c' num2str(compi) '_sum %'... % 'cdata.component.c' num2str(compi) '_perc '... % 'cdata.component.c' num2str(compi) '_sum_p '... % 'cdata.component.total_c' num2str(compi) '_perc_p '... % 'cdata.component.c' num2str(compi) '_perc_p '... % 'cdata.component.c' num2str(compi) '_sum_e ' ... % 'cdata.component.total_c' num2str(compi) '_perc_e '... % 'cdata.component.c' num2str(compi) '_perc_e];']); % end % elseif length(cdata.compnum)>1 % for compi=1:cdata.compnum(1) % eval(['Table(1:2,1+compi)=['... % 'cdata.component.c' num2str(compi) '_sum '... % 'cdata.component.c' num2str(compi) '_perc ];']); % end % for compi=1:cdata.compnum(2) % eval(['Table(3:5,1+compi)=['... % 'cdata.component.c' num2str(compi) '_sum_p '... % 'cdata.component.total_c' num2str(compi) '_perc_p '... % 'cdata.component.c' num2str(compi) '_perc_p ];']); % end % for compi=1:cdata.compnum(3) % eval(['Table(6:8,1+compi)=['... % 'cdata.component.c' num2str(compi) '_sum_e '... % 'cdata.component.total_c' num2str(compi) '_perc_e '... % 'cdata.component.c' num2str(compi) '_perc_e ];']); % end % % end % eval(['Table(:,end)=[' 'cdata.comp_sum '... % 'cdata.comp_sum_perc '... % 'cdata.comp_sum_p '... % 'cdata.component.total_comp_perc_p '... % 'cdata.comp_sum_perc_p '... % 'cdata.comp_sum_e '... % 'cdata.component.total_comp_perc_e '... % 'cdata.comp_sum_perc_e]; ']); % %************************************************ rowheads = strvcat('1','2','3','4',... '5','6','7','8','9','10'); %atab = num2cell(fintop); %atab2= num2cell(finbot); t=size(fintop,2); for i=1:size(fintop,1) %p=0; for j=1:size(fintop,2) %if (isinf(atab{i,j})) %atab{i,j} = []; %end %if %atab{i,j} = sprintf('%.2f', atab{i,j}); %end %if j>1 % p=p+3; %end Table2(i, 2*j-1)=fintop(i,j); %p=1; Table2(i, 2*j)=finbot(i,j); end end [q r]=size(fintopstr); save q.mat q; save r.mat r; rowheads1=[]; rowheads2=[]; for i=1:q %i=1; %j=1; s=r/t; u=s; starts=1; for j=1:t %matr(i,j)=mat2cell(fintopstr(i,starts:u)); %matri(i,j)=mat2cell(finbotstr(i,starts:u)); rowheads1=strvcat(rowheads1,[fintopstr(i,starts:u)],[finbotstr(i,starts:u)]); if j==t save rowheads1.mat rowheads1; save j.mat j; end starts=starts+s; u=u+s; if u > r u=r; end end rowheads2=strvcat(rowheads2,rowheads1); end %save matr.mat matr; %save matri.mat matri; %for i=1:size(matr,1) %p=0; %for j=1:size(matr,2) % if j>1 % p=p+3; % end %matrf=cell2mat(matr); %matrif=cell2mat(matri); %save matrf.mat matrf; %save matrif.mat matrif; %Table2(i,j+p)=matr(i,j); %if p==0 % continue; %else %Table2(i,j+p-2)=matri(i,j); %end %end %end atab2=[]; %save atab.mat atab; %save Table2.mat Table2; atab2=[cellstr(strjust(rowheads,'left')),atab2]; abc=cellstr(strjust(rowheads1,'left')); startt=1; for d=1:q cba(d,1:2*t)=abc(startt:startt+2*t-1,1)'; startt=startt+2*t; end save cba.mat cba; save abc.mat abc; save atab2.mat atab2; save Table2.mat Table2; Table22=num2cell(Table2); save rowheads2.mat rowheads2; for b=1:2*n atab2=[atab2,Table22(:,b),cba(:,b)]; end atab2=[cellstr(strjust(colheads,'left'))';atab2]; atab22=atab2; save atab22.mat atab22; %atab2=[cellstr(strjust(colheads,'left'))'; atab]; %rowd=cellstr(strjust(rowheads,'left')); %cold=cellstr(strjust(colheads,'left')); %save rowd.mat rowd; %save cold.mat cold; %atab = [cellstr(strjust(rowheads,'left')), atab]; %atabb=atab; %save atabb.mat atabb; %atab = [cellstr(strjust(colheads,'left'))'; atab]; wtitle = 'Table_Extremes'; ttitle = 'SS and Percent SS'; digits = ones(1,4*n+1)*(-1); disptxt = displayform(atab2,digits); disptxt = [repmat('-',1,size(disptxt,2));disptxt(1,:); repmat('-',1,size(disptxt,2)); disptxt(2:end,:)] fid = fopen([wtitle '_Run' num2str(cdata.run) '_Comp'... num2str(cdata.compnum),'_Rot' num2str(get(findobj('Tag','rotation'),'value')) '.txt'],'w'); for txti=1:size(disptxt,1) fprintf(fid,'%s',disptxt(txti,:)); fprintf(fid,'\n'); end fclose(fid); commandwindow; else text(cdata.Azr(:,1), cdata.Azr(:,2),num2str([1:size(cdata.Z,2)]')); end xlabel('Total 1','fontsize',9,'fontweight','bold'); ylabel('Total 2','fontsize',9,'fontweight','bold'); elseif (length(cdata.compnum)>1 && cdata.compnum(1) ==1) || (length(cdata.compnum)==1 && cdata.compnum ==1) plot(cdata.Azr(:,1)*-1,[1:size(cdata.Azpr,1)]','o'); if cdata.Zlabelflag text(cdata.Azr(:,1)*-1,[1:size(cdata.Azpr,1)]',cdata.Zlabel); [m n]=size(cdata.Azr); if m<10 g=m; else g=10; end top=[]; bottom=[]; d=g+1; [a b] = size(cdata.Zlabel); start=1; for c=1:n for k=1:d top(k,c)=cdata.Azr(k,c); topstr(k,start:start+b-1)=cdata.Zlabel(k,:); %topstr2(k,:)=cdata.Zlabel(k,:); %topstr3(k,:)=cdata.Zlabel(k,:); bot(k,c)=cdata.Azr(k,c); botstr(k,start:start+b-1)=cdata.Zlabel(k,:); %botstr2(k,:)=cdata.Zlabel(k,:); %botstr3(k,:)=cdata.Zlabel(k,:); end start=start+b+1; end topback=topstr; %topback=[a b]; save topback.mat topback; start=1; for c=1:n for k=1:m h=1; %top=topback; while ((cdata.Azr(k,c)top(h,c) topp=top; toppstr=topstr; topp(h,c)=cdata.Azr(k,c); %[c d]=size(topstr(k,:)); toppstr(h,start:start+b-1)=cdata.Zlabel(k,:); while (hg) break; else topp(h,c)=top(f,c); toppstr(h,start:start+b-1)=topstr(f,start:start+b-1); end end toppstr(h,start+b)=' '; top=topp; fintop=top(1:g,1:c); topstr=toppstr; fintopstr=topstr(1:g,:); cdata.top=top; save top.mat top; cdata.fintop=fintop; save fintop.mat fintop; cdata.topstr=topstr; save topstr.mat topstr; cdata.fintopstr=fintopstr; save fintopstr.mat fintopstr; end end end for k=1:m h=1; while ((cdata.Azr(k,c)>bot(h,c)) && h<=g && hg) break; else bott(h,c)=bot(f,c); bottstr(h,start:start+b-1)=botstr(f,start:start+b-1); end end bottstr(h,start+b)=' '; bot=bott; finbot=bot(1:g,1:c); botstr=bottstr; finbotstr=botstr(1:g,:); cdata.bot=bot; save bot.mat bot; cdata.finbot=finbot; save finbot.mat finbot; cdata.botstr=botstr; save botstr.mat botstr; cdata.finbotstr=finbotstr; save finbotstr.mat finbotstr; end end end start=start+b+1; end Table2=zeros(g,2*n); per100=100; %compsum=[]; colheads=strvcat('Source'); for compi=1:n colheads = strvcat(colheads,['Comp' num2str(compi) ' High'], ['Comp' num2str(compi) 'High Val'], ['Comp' num2str(compi) 'Low' ],['Comp' num2str(compi) 'Low Val' ]); end save colheads.mat colheads; %colheads = strvcat('Source ', 'External '); %for compi=1:max(cdata.compnum) % colheads = strvcat(colheads,['Comp' num2str(compi) ' ']); %end %colheads = strvcat(colheads, 'Allcomp'); %Table2(:,1)=[ cdata.tsum per100... %cdata.tsum_p cdata.total_perc_p per100... %cdata.tsum_e cdata.total_perc_e per100]'; %************************************************ %if length(cdata.compnum)==1 % for compi=1:cdata.compnum % eval(['Table(:,1+compi)=[' 'cdata.component.c' num2str(compi) '_sum %'... % 'cdata.component.c' num2str(compi) '_perc '... % 'cdata.component.c' num2str(compi) '_sum_p '... % 'cdata.component.total_c' num2str(compi) '_perc_p '... % 'cdata.component.c' num2str(compi) '_perc_p '... % 'cdata.component.c' num2str(compi) '_sum_e ' ... % 'cdata.component.total_c' num2str(compi) '_perc_e '... % 'cdata.component.c' num2str(compi) '_perc_e];']); % end % elseif length(cdata.compnum)>1 % for compi=1:cdata.compnum(1) % eval(['Table(1:2,1+compi)=['... % 'cdata.component.c' num2str(compi) '_sum '... % 'cdata.component.c' num2str(compi) '_perc ];']); % end % for compi=1:cdata.compnum(2) % eval(['Table(3:5,1+compi)=['... % 'cdata.component.c' num2str(compi) '_sum_p '... % 'cdata.component.total_c' num2str(compi) '_perc_p '... % 'cdata.component.c' num2str(compi) '_perc_p ];']); % end % for compi=1:cdata.compnum(3) % eval(['Table(6:8,1+compi)=['... % 'cdata.component.c' num2str(compi) '_sum_e '... % 'cdata.component.total_c' num2str(compi) '_perc_e '... % 'cdata.component.c' num2str(compi) '_perc_e ];']); % end % % end % eval(['Table(:,end)=[' 'cdata.comp_sum '... % 'cdata.comp_sum_perc '... % 'cdata.comp_sum_p '... % 'cdata.component.total_comp_perc_p '... % 'cdata.comp_sum_perc_p '... % 'cdata.comp_sum_e '... % 'cdata.component.total_comp_perc_e '... % 'cdata.comp_sum_perc_e]; ']); % %************************************************ rowheads = strvcat('1','2','3','4',... '5','6','7','8','9','10'); %atab = num2cell(fintop); %atab2= num2cell(finbot); t=size(fintop,2); for i=1:size(fintop,1) %p=0; for j=1:size(fintop,2) %if (isinf(atab{i,j})) %atab{i,j} = []; %end %if %atab{i,j} = sprintf('%.2f', atab{i,j}); %end %if j>1 % p=p+3; %end Table2(i, 2*j-1)=fintop(i,j); %p=1; Table2(i, 2*j)=finbot(i,j); end end [q r]=size(fintopstr); save q.mat q; save r.mat r; rowheads1=[]; rowheads2=[]; for i=1:q %i=1; %j=1; s=r/t; u=s; starts=1; for j=1:t %matr(i,j)=mat2cell(fintopstr(i,starts:u)); %matri(i,j)=mat2cell(finbotstr(i,starts:u)); rowheads1=strvcat(rowheads1,[fintopstr(i,starts:u)],[finbotstr(i,starts:u)]); if j==t save rowheads1.mat rowheads1; save j.mat j; end starts=starts+s; u=u+s; if u > r u=r; end end rowheads2=strvcat(rowheads2,rowheads1); end %save matr.mat matr; %save matri.mat matri; %for i=1:size(matr,1) %p=0; %for j=1:size(matr,2) % if j>1 % p=p+3; % end %matrf=cell2mat(matr); %matrif=cell2mat(matri); %save matrf.mat matrf; %save matrif.mat matrif; %Table2(i,j+p)=matr(i,j); %if p==0 % continue; %else %Table2(i,j+p-2)=matri(i,j); %end %end %end atab2=[]; %save atab.mat atab; %save Table2.mat Table2; atab2=[cellstr(strjust(rowheads,'left')),atab2]; abc=cellstr(strjust(rowheads1,'left')); startt=1; for d=1:q cba(d,1:2*t)=abc(startt:startt+2*t-1,1)'; startt=startt+2*t; end save cba.mat cba; save abc.mat abc; save atab2.mat atab2; save Table2.mat Table2; Table22=num2cell(Table2); save rowheads2.mat rowheads2; for b=1:2*n atab2=[atab2,Table22(:,b),cba(:,b)]; end atab2=[cellstr(strjust(colheads,'left'))';atab2]; atab22=atab2; save atab22.mat atab22; %atab2=[cellstr(strjust(colheads,'left'))'; atab]; %rowd=cellstr(strjust(rowheads,'left')); %cold=cellstr(strjust(colheads,'left')); %save rowd.mat rowd; %save cold.mat cold; %atab = [cellstr(strjust(rowheads,'left')), atab]; %atabb=atab; %save atabb.mat atabb; %atab = [cellstr(strjust(colheads,'left'))'; atab]; wtitle = 'Table_Extremes'; ttitle = 'SS and Percent SS'; digits = ones(1,4*n+1)*(-1); disptxt = displayform(atab2,digits); disptxt = [repmat('-',1,size(disptxt,2));disptxt(1,:); repmat('-',1,size(disptxt,2)); disptxt(2:end,:)] fid = fopen([wtitle '_Run' num2str(cdata.run) '_Comp'... num2str(cdata.compnum),'_Rot' num2str(get(findobj('Tag','rotation'),'value')) '.txt'],'w'); for txti=1:size(disptxt,1) fprintf(fid,'%s',disptxt(txti,:)); fprintf(fid,'\n'); end fclose(fid); commandwindow; else text(cdata.Azr(:,1)*-1,[1:size(cdata.Azpr,1)]',num2str([1:size(cdata.Z,2)]')); end xlabel('Total 1','fontsize',9,'fontweight','bold'); end legend('Variables',4); legend('boxoff'); saveas(fh,'Total_loading.fig'); case 'Acc_for_by_G' % User selects between component. fh = figure('MenuBar','none','Visible','on', 'HandleVisibility','callback',... 'Toolbar','figure','Name','Between component loading','NumberTitle','off'); if (length(cdata.compnum)>1 && cdata.compnum(2) >=3) || (length(cdata.compnum)==1 && cdata.compnum >=3) scatter(cdata.CP_p(:,1), cdata.CP_p(:,2),'r'); hold on scatter(cdata.Azpr(:,1), cdata.Azpr(:,2),'b'); hold off if cdata.Glabelflag text(cdata.CP_p(:,1), cdata.CP_p(:,2),cdata.Glabel); [m n]=size(cdata.CP_p); if m>10 if m<10 g=m; else g=10; end top=[]; bottom=[]; if g<10 d=g; else d=g+1; end [a b] = size(cdata.Glabel); start=1; for c=1:n for k=1:d top(k,c)=cdata.CP_p(k,c); topstr(k,start:start+b-1)=cdata.Glabel(k,:); %topstr2(k,:)=cdata.Zlabel(k,:); %topstr3(k,:)=cdata.Zlabel(k,:); bot(k,c)=cdata.CP_p(k,c); botstr(k,start:start+b-1)=cdata.Glabel(k,:); %botstr2(k,:)=cdata.Zlabel(k,:); %botstr3(k,:)=cdata.Zlabel(k,:); end start=start+b+1; end topback=topstr; %topback=[a b]; save topback.mat topback; start=1; for c=1:n for k=1:m h=1; %top=topback; while ((cdata.CP_p(k,c)top(h,c) topp=top; toppstr=topstr; topp(h,c)=cdata.CP_p(k,c); %[c d]=size(topstr(k,:)); toppstr(h,start:start+b-1)=cdata.Glabel(k,:); while (hg) break; else topp(h,c)=top(f,c); toppstr(h,start:start+b-1)=topstr(f,start:start+b-1); end end toppstr(h,start+b)=' '; top=topp; fintop=top(1:g,1:c); topstr=toppstr; fintopstr=topstr(1:g,:); cdata.top=top; save top.mat top; cdata.fintop=fintop; save fintop.mat fintop; cdata.topstr=topstr; save topstr.mat topstr; cdata.fintopstr=fintopstr; save fintopstr.mat fintopstr; end end end for k=1:m h=1; while ((cdata.CP_p(k,c)>bot(h,c)) && h<=g && hg) break; else bott(h,c)=bot(f,c); bottstr(h,start:start+b-1)=botstr(f,start:start+b-1); end end bottstr(h,start+b)=' '; bot=bott; finbot=bot(1:g,1:c); botstr=bottstr; finbotstr=botstr(1:g,:); cdata.bot=bot; save bot.mat bot; cdata.finbot=finbot; save finbot.mat finbot; cdata.botstr=botstr; save botstr.mat botstr; cdata.finbotstr=finbotstr; save finbotstr.mat finbotstr; end end end start=start+b+1; end Table2=zeros(g,2*n); per100=100; %compsum=[]; colheads=strvcat('Source'); for compi=1:n colheads = strvcat(colheads,['Comp' num2str(compi) ' High'], ['Comp' num2str(compi) 'High Val'], ['Comp' num2str(compi) 'Low' ],['Comp' num2str(compi) 'Low Val' ]); end save colheads.mat colheads; %colheads = strvcat('Source ', 'External '); %for compi=1:max(cdata.compnum) % colheads = strvcat(colheads,['Comp' num2str(compi) ' ']); %end %colheads = strvcat(colheads, 'Allcomp'); %Table2(:,1)=[ cdata.tsum per100... %cdata.tsum_p cdata.total_perc_p per100... %cdata.tsum_e cdata.total_perc_e per100]'; %************************************************ %if length(cdata.compnum)==1 % for compi=1:cdata.compnum % eval(['Table(:,1+compi)=[' 'cdata.component.c' num2str(compi) '_sum %'... % 'cdata.component.c' num2str(compi) '_perc '... % 'cdata.component.c' num2str(compi) '_sum_p '... % 'cdata.component.total_c' num2str(compi) '_perc_p '... % 'cdata.component.c' num2str(compi) '_perc_p '... % 'cdata.component.c' num2str(compi) '_sum_e ' ... % 'cdata.component.total_c' num2str(compi) '_perc_e '... % 'cdata.component.c' num2str(compi) '_perc_e];']); % end % elseif length(cdata.compnum)>1 % for compi=1:cdata.compnum(1) % eval(['Table(1:2,1+compi)=['... % 'cdata.component.c' num2str(compi) '_sum '... % 'cdata.component.c' num2str(compi) '_perc ];']); % end % for compi=1:cdata.compnum(2) % eval(['Table(3:5,1+compi)=['... % 'cdata.component.c' num2str(compi) '_sum_p '... % 'cdata.component.total_c' num2str(compi) '_perc_p '... % 'cdata.component.c' num2str(compi) '_perc_p ];']); % end % for compi=1:cdata.compnum(3) % eval(['Table(6:8,1+compi)=['... % 'cdata.component.c' num2str(compi) '_sum_e '... % 'cdata.component.total_c' num2str(compi) '_perc_e '... % 'cdata.component.c' num2str(compi) '_perc_e ];']); % end % % end % eval(['Table(:,end)=[' 'cdata.comp_sum '... % 'cdata.comp_sum_perc '... % 'cdata.comp_sum_p '... % 'cdata.component.total_comp_perc_p '... % 'cdata.comp_sum_perc_p '... % 'cdata.comp_sum_e '... % 'cdata.component.total_comp_perc_e '... % 'cdata.comp_sum_perc_e]; ']); % %************************************************ rowheads = strvcat('1','2','3','4',... '5','6','7','8','9','10'); %atab = num2cell(fintop); %atab2= num2cell(finbot); t=size(fintop,2); for i=1:size(fintop,1) %p=0; for j=1:size(fintop,2) %if (isinf(atab{i,j})) %atab{i,j} = []; %end %if %atab{i,j} = sprintf('%.2f', atab{i,j}); %end %if j>1 % p=p+3; %end Table2(i, 2*j-1)=fintop(i,j); %p=1; Table2(i, 2*j)=finbot(i,j); end end [q r]=size(fintopstr); save q.mat q; save r.mat r; rowheads1=[]; rowheads2=[]; for i=1:q %i=1; %j=1; s=r/t; u=s; starts=1; for j=1:t %matr(i,j)=mat2cell(fintopstr(i,starts:u)); %matri(i,j)=mat2cell(finbotstr(i,starts:u)); rowheads1=strvcat(rowheads1,[fintopstr(i,starts:u)],[finbotstr(i,starts:u)]); if j==t save rowheads1.mat rowheads1; save j.mat j; end starts=starts+s; u=u+s; if u > r u=r; end end rowheads2=strvcat(rowheads2,rowheads1); end %save matr.mat matr; %save matri.mat matri; %for i=1:size(matr,1) %p=0; %for j=1:size(matr,2) % if j>1 % p=p+3; % end %matrf=cell2mat(matr); %matrif=cell2mat(matri); %save matrf.mat matrf; %save matrif.mat matrif; %Table2(i,j+p)=matr(i,j); %if p==0 % continue; %else %Table2(i,j+p-2)=matri(i,j); %end %end %end atab2=[]; %save atab.mat atab; %save Table2.mat Table2; atab2=[cellstr(strjust(rowheads,'left')),atab2]; abc=cellstr(strjust(rowheads1,'left')); startt=1; for d=1:q cba(d,1:2*t)=abc(startt:startt+2*t-1,1)'; startt=startt+2*t; end save cba.mat cba; save abc.mat abc; save atab2.mat atab2; save Table2.mat Table2; Table22=num2cell(Table2); save rowheads2.mat rowheads2; for b=1:2*n atab2=[atab2,Table22(:,b),cba(:,b)]; end atab2=[cellstr(strjust(colheads,'left'))';atab2]; atab22=atab2; save atab22.mat atab22; %atab2=[cellstr(strjust(colheads,'left'))'; atab]; %rowd=cellstr(strjust(rowheads,'left')); %cold=cellstr(strjust(colheads,'left')); %save rowd.mat rowd; %save cold.mat cold; %atab = [cellstr(strjust(rowheads,'left')), atab]; %atabb=atab; %save atabb.mat atabb; %atab = [cellstr(strjust(colheads,'left'))'; atab]; wtitle = 'Table_Extremes'; ttitle = 'SS and Percent SS'; digits = ones(1,4*n+1)*(-1); disptxt = displayform(atab2,digits); disptxt = [repmat('-',1,size(disptxt,2));disptxt(1,:); repmat('-',1,size(disptxt,2)); disptxt(2:end,:)] fid = fopen([wtitle '_Run' num2str(cdata.run) '_Comp'... num2str(cdata.compnum),'_Rot' num2str(get(findobj('Tag','rotation'),'value')) '.txt'],'w'); for txti=1:size(disptxt,1) fprintf(fid,'%s',disptxt(txti,:)); fprintf(fid,'\n'); end fclose(fid); commandwindow; end else text(cdata.CP_p(:,1), cdata.CP_p(:,2), num2str([1:size(cdata.CP_p,1)]')); end if cdata.Zlabelflag text(cdata.Azpr(:,1), cdata.Azpr(:,2),cdata.Zlabel); [m n]=size(cdata.Azpr); if m<10 g=m; else g=10; end top=[]; bottom=[]; d=g+1; [a b] = size(cdata.Zlabel); start=1; for c=1:n for k=1:d top(k,c)=cdata.Azpr(k,c); topstr(k,start:start+b-1)=cdata.Zlabel(k,:); %topstr2(k,:)=cdata.Zlabel(k,:); %topstr3(k,:)=cdata.Zlabel(k,:); bot(k,c)=cdata.Azpr(k,c); botstr(k,start:start+b-1)=cdata.Zlabel(k,:); %botstr2(k,:)=cdata.Zlabel(k,:); %botstr3(k,:)=cdata.Zlabel(k,:); end start=start+b+1; end topback=topstr; %topback=[a b]; save topback.mat topback; start=1; for c=1:n for k=1:m h=1; %top=topback; while ((cdata.Azpr(k,c)top(h,c) topp=top; toppstr=topstr; topp(h,c)=cdata.Azpr(k,c); %[c d]=size(topstr(k,:)); toppstr(h,start:start+b-1)=cdata.Zlabel(k,:); while (hg) break; else topp(h,c)=top(f,c); toppstr(h,start:start+b-1)=topstr(f,start:start+b-1); end end toppstr(h,start+b)=' '; top=topp; fintop=top(1:g,1:c); topstr=toppstr; fintopstr=topstr(1:g,:); cdata.top=top; save top.mat top; cdata.fintop=fintop; save fintop.mat fintop; cdata.topstr=topstr; save topstr.mat topstr; cdata.fintopstr=fintopstr; save fintopstr.mat fintopstr; end end end for k=1:m h=1; while ((cdata.Azpr(k,c)>bot(h,c)) && h<=g && hg) break; else bott(h,c)=bot(f,c); bottstr(h,start:start+b-1)=botstr(f,start:start+b-1); end end bottstr(h,start+b)=' '; bot=bott; finbot=bot(1:g,1:c); botstr=bottstr; finbotstr=botstr(1:g,:); cdata.bot=bot; save bot.mat bot; cdata.finbot=finbot; save finbot.mat finbot; cdata.botstr=botstr; save botstr.mat botstr; cdata.finbotstr=finbotstr; save finbotstr.mat finbotstr; end end end start=start+b+1; end Table2=zeros(g,2*n); per100=100; %compsum=[]; colheads=strvcat('Source'); for compi=1:n colheads = strvcat(colheads,['Comp' num2str(compi) ' High'], ['Comp' num2str(compi) 'High Val'], ['Comp' num2str(compi) 'Low' ],['Comp' num2str(compi) 'Low Val' ]); end save colheads.mat colheads; %colheads = strvcat('Source ', 'External '); %for compi=1:max(cdata.compnum) % colheads = strvcat(colheads,['Comp' num2str(compi) ' ']); %end %colheads = strvcat(colheads, 'Allcomp'); %Table2(:,1)=[ cdata.tsum per100... %cdata.tsum_p cdata.total_perc_p per100... %cdata.tsum_e cdata.total_perc_e per100]'; %************************************************ %if length(cdata.compnum)==1 % for compi=1:cdata.compnum % eval(['Table(:,1+compi)=[' 'cdata.component.c' num2str(compi) '_sum %'... % 'cdata.component.c' num2str(compi) '_perc '... % 'cdata.component.c' num2str(compi) '_sum_p '... % 'cdata.component.total_c' num2str(compi) '_perc_p '... % 'cdata.component.c' num2str(compi) '_perc_p '... % 'cdata.component.c' num2str(compi) '_sum_e ' ... % 'cdata.component.total_c' num2str(compi) '_perc_e '... % 'cdata.component.c' num2str(compi) '_perc_e];']); % end % elseif length(cdata.compnum)>1 % for compi=1:cdata.compnum(1) % eval(['Table(1:2,1+compi)=['... % 'cdata.component.c' num2str(compi) '_sum '... % 'cdata.component.c' num2str(compi) '_perc ];']); % end % for compi=1:cdata.compnum(2) % eval(['Table(3:5,1+compi)=['... % 'cdata.component.c' num2str(compi) '_sum_p '... % 'cdata.component.total_c' num2str(compi) '_perc_p '... % 'cdata.component.c' num2str(compi) '_perc_p ];']); % end % for compi=1:cdata.compnum(3) % eval(['Table(6:8,1+compi)=['... % 'cdata.component.c' num2str(compi) '_sum_e '... % 'cdata.component.total_c' num2str(compi) '_perc_e '... % 'cdata.component.c' num2str(compi) '_perc_e ];']); % end % % end % eval(['Table(:,end)=[' 'cdata.comp_sum '... % 'cdata.comp_sum_perc '... % 'cdata.comp_sum_p '... % 'cdata.component.total_comp_perc_p '... % 'cdata.comp_sum_perc_p '... % 'cdata.comp_sum_e '... % 'cdata.component.total_comp_perc_e '... % 'cdata.comp_sum_perc_e]; ']); % %************************************************ rowheads = strvcat('1','2','3','4',... '5','6','7','8','9','10'); %atab = num2cell(fintop); %atab2= num2cell(finbot); t=size(fintop,2); for i=1:size(fintop,1) %p=0; for j=1:size(fintop,2) %if (isinf(atab{i,j})) %atab{i,j} = []; %end %if %atab{i,j} = sprintf('%.2f', atab{i,j}); %end %if j>1 % p=p+3; %end Table2(i, 2*j-1)=fintop(i,j); %p=1; Table2(i, 2*j)=finbot(i,j); end end [q r]=size(fintopstr); save q.mat q; save r.mat r; rowheads1=[]; rowheads2=[]; for i=1:q %i=1; %j=1; s=r/t; u=s; starts=1; for j=1:t %matr(i,j)=mat2cell(fintopstr(i,starts:u)); %matri(i,j)=mat2cell(finbotstr(i,starts:u)); rowheads1=strvcat(rowheads1,[fintopstr(i,starts:u)],[finbotstr(i,starts:u)]); if j==t save rowheads1.mat rowheads1; save j.mat j; end starts=starts+s; u=u+s; if u > r u=r; end end rowheads2=strvcat(rowheads2,rowheads1); end %save matr.mat matr; %save matri.mat matri; %for i=1:size(matr,1) %p=0; %for j=1:size(matr,2) % if j>1 % p=p+3; % end %matrf=cell2mat(matr); %matrif=cell2mat(matri); %save matrf.mat matrf; %save matrif.mat matrif; %Table2(i,j+p)=matr(i,j); %if p==0 % continue; %else %Table2(i,j+p-2)=matri(i,j); %end %end %end atab2=[]; %save atab.mat atab; %save Table2.mat Table2; atab2=[cellstr(strjust(rowheads,'left')),atab2]; abc=cellstr(strjust(rowheads1,'left')); startt=1; for d=1:q cba(d,1:2*t)=abc(startt:startt+2*t-1,1)'; startt=startt+2*t; end save cba.mat cba; save abc.mat abc; save atab2.mat atab2; save Table2.mat Table2; Table22=num2cell(Table2); save rowheads2.mat rowheads2; for b=1:2*n atab2=[atab2,Table22(:,b),cba(:,b)]; end atab2=[cellstr(strjust(colheads,'left'))';atab2]; atab22=atab2; save atab22.mat atab22; %atab2=[cellstr(strjust(colheads,'left'))'; atab]; %rowd=cellstr(strjust(rowheads,'left')); %cold=cellstr(strjust(colheads,'left')); %save rowd.mat rowd; %save cold.mat cold; %atab = [cellstr(strjust(rowheads,'left')), atab]; %atabb=atab; %save atabb.mat atabb; %atab = [cellstr(strjust(colheads,'left'))'; atab]; wtitle = 'Table_Extremes'; ttitle = 'SS and Percent SS'; digits = ones(1,4*n+1)*(-1); disptxt = displayform(atab2,digits); disptxt = [repmat('-',1,size(disptxt,2));disptxt(1,:); repmat('-',1,size(disptxt,2)); disptxt(2:end,:)] fid = fopen([wtitle '_Run' num2str(cdata.run) '_Comp'... num2str(cdata.compnum),'_Rot' num2str(get(findobj('Tag','rotation'),'value')) '.txt'],'w'); for txti=1:size(disptxt,1) fprintf(fid,'%s',disptxt(txti,:)); fprintf(fid,'\n'); end fclose(fid); commandwindow; else text(cdata.Azpr(:,1), cdata.Azpr(:,2),num2str([1:size(cdata.Z,2)]')); end if (length(cdata.compnum)>1 && cdata.compnum(2) >=3) || (length(cdata.compnum)==1 && cdata.compnum >=3) title('Only present the first 3 dimensions','fontsize',16,'fontweight','bold'); end xlabel('Component 1','fontsize',16,'fontweight','bold'); ylabel('Component 2','fontsize',16,'fontweight','bold'); %zlabel('Component 3','fontsize',16,'fontweight','bold'); elseif (length(cdata.compnum)>1 && cdata.compnum(2) ==2) || (length(cdata.compnum)==1 && cdata.compnum ==2) scatter(cdata.CP_p(:,1), cdata.CP_p(:,2),'r'); hold on scatter(cdata.Azpr(:,1), cdata.Azpr(:,2),'b'); hold off if cdata.Glabelflag text(cdata.CP_p(:,1), cdata.CP_p(:,2),cdata.Glabel, 'FontSize', 16); [m n]=size(cdata.CP_p); if m>10 if m<10 g=m; else g=10; end top=[]; bottom=[]; d=g+1; [a b] = size(cdata.Glabel); start=1; for c=1:n for k=1:d top(k,c)=cdata.CP_p(k,c); topstr(k,start:start+b-1)=cdata.Glabel(k,:); %topstr2(k,:)=cdata.Zlabel(k,:); %topstr3(k,:)=cdata.Zlabel(k,:); bot(k,c)=cdata.CP_p(k,c); botstr(k,start:start+b-1)=cdata.Glabel(k,:); %botstr2(k,:)=cdata.Zlabel(k,:); %botstr3(k,:)=cdata.Zlabel(k,:); end start=start+b+1; end topback=topstr; %topback=[a b]; save topback.mat topback; start=1; for c=1:n for k=1:m h=1; %top=topback; while ((cdata.CP_p(k,c)top(h,c) topp=top; toppstr=topstr; topp(h,c)=cdata.CP_p(k,c); %[c d]=size(topstr(k,:)); toppstr(h,start:start+b-1)=cdata.Glabel(k,:); while (hg) break; else topp(h,c)=top(f,c); toppstr(h,start:start+b-1)=topstr(f,start:start+b-1); end end toppstr(h,start+b)=' '; top=topp; fintop=top(1:g,1:c); topstr=toppstr; fintopstr=topstr(1:g,:); cdata.top=top; save top.mat top; cdata.fintop=fintop; save fintop.mat fintop; cdata.topstr=topstr; save topstr.mat topstr; cdata.fintopstr=fintopstr; save fintopstr.mat fintopstr; end end end for k=1:m h=1; while ((cdata.CP_p(k,c)>bot(h,c)) && h<=g && hg) break; else bott(h,c)=bot(f,c); bottstr(h,start:start+b-1)=botstr(f,start:start+b-1); end end bottstr(h,start+b)=' '; bot=bott; finbot=bot(1:g,1:c); botstr=bottstr; finbotstr=botstr(1:g,:); cdata.bot=bot; save bot.mat bot; cdata.finbot=finbot; save finbot.mat finbot; cdata.botstr=botstr; save botstr.mat botstr; cdata.finbotstr=finbotstr; save finbotstr.mat finbotstr; end end end start=start+b+1; end Table2=zeros(g,2*n); per100=100; %compsum=[]; colheads=strvcat('Source'); for compi=1:n colheads = strvcat(colheads,['Comp' num2str(compi) ' High'], ['Comp' num2str(compi) 'High Val'], ['Comp' num2str(compi) 'Low' ],['Comp' num2str(compi) 'Low Val' ]); end save colheads.mat colheads; %colheads = strvcat('Source ', 'External '); %for compi=1:max(cdata.compnum) % colheads = strvcat(colheads,['Comp' num2str(compi) ' ']); %end %colheads = strvcat(colheads, 'Allcomp'); %Table2(:,1)=[ cdata.tsum per100... %cdata.tsum_p cdata.total_perc_p per100... %cdata.tsum_e cdata.total_perc_e per100]'; %************************************************ %if length(cdata.compnum)==1 % for compi=1:cdata.compnum % eval(['Table(:,1+compi)=[' 'cdata.component.c' num2str(compi) '_sum %'... % 'cdata.component.c' num2str(compi) '_perc '... % 'cdata.component.c' num2str(compi) '_sum_p '... % 'cdata.component.total_c' num2str(compi) '_perc_p '... % 'cdata.component.c' num2str(compi) '_perc_p '... % 'cdata.component.c' num2str(compi) '_sum_e ' ... % 'cdata.component.total_c' num2str(compi) '_perc_e '... % 'cdata.component.c' num2str(compi) '_perc_e];']); % end % elseif length(cdata.compnum)>1 % for compi=1:cdata.compnum(1) % eval(['Table(1:2,1+compi)=['... % 'cdata.component.c' num2str(compi) '_sum '... % 'cdata.component.c' num2str(compi) '_perc ];']); % end % for compi=1:cdata.compnum(2) % eval(['Table(3:5,1+compi)=['... % 'cdata.component.c' num2str(compi) '_sum_p '... % 'cdata.component.total_c' num2str(compi) '_perc_p '... % 'cdata.component.c' num2str(compi) '_perc_p ];']); % end % for compi=1:cdata.compnum(3) % eval(['Table(6:8,1+compi)=['... % 'cdata.component.c' num2str(compi) '_sum_e '... % 'cdata.component.total_c' num2str(compi) '_perc_e '... % 'cdata.component.c' num2str(compi) '_perc_e ];']); % end % % end % eval(['Table(:,end)=[' 'cdata.comp_sum '... % 'cdata.comp_sum_perc '... % 'cdata.comp_sum_p '... % 'cdata.component.total_comp_perc_p '... % 'cdata.comp_sum_perc_p '... % 'cdata.comp_sum_e '... % 'cdata.component.total_comp_perc_e '... % 'cdata.comp_sum_perc_e]; ']); % %************************************************ rowheads = strvcat('1','2','3','4',... '5','6','7','8','9','10'); %atab = num2cell(fintop); %atab2= num2cell(finbot); t=size(fintop,2); for i=1:size(fintop,1) %p=0; for j=1:size(fintop,2) %if (isinf(atab{i,j})) %atab{i,j} = []; %end %if %atab{i,j} = sprintf('%.2f', atab{i,j}); %end %if j>1 % p=p+3; %end Table2(i, 2*j-1)=fintop(i,j); %p=1; Table2(i, 2*j)=finbot(i,j); end end [q r]=size(fintopstr); save q.mat q; save r.mat r; rowheads1=[]; rowheads2=[]; for i=1:q %i=1; %j=1; s=r/t; u=s; starts=1; for j=1:t %matr(i,j)=mat2cell(fintopstr(i,starts:u)); %matri(i,j)=mat2cell(finbotstr(i,starts:u)); rowheads1=strvcat(rowheads1,[fintopstr(i,starts:u)],[finbotstr(i,starts:u)]); if j==t save rowheads1.mat rowheads1; save j.mat j; end starts=starts+s; u=u+s; if u > r u=r; end end rowheads2=strvcat(rowheads2,rowheads1); end %save matr.mat matr; %save matri.mat matri; %for i=1:size(matr,1) %p=0; %for j=1:size(matr,2) % if j>1 % p=p+3; % end %matrf=cell2mat(matr); %matrif=cell2mat(matri); %save matrf.mat matrf; %save matrif.mat matrif; %Table2(i,j+p)=matr(i,j); %if p==0 % continue; %else %Table2(i,j+p-2)=matri(i,j); %end %end %end atab2=[]; %save atab.mat atab; %save Table2.mat Table2; atab2=[cellstr(strjust(rowheads,'left')),atab2]; abc=cellstr(strjust(rowheads1,'left')); startt=1; for d=1:q cba(d,1:2*t)=abc(startt:startt+2*t-1,1)'; startt=startt+2*t; end save cba.mat cba; save abc.mat abc; save atab2.mat atab2; save Table2.mat Table2; Table22=num2cell(Table2); save rowheads2.mat rowheads2; for b=1:2*n atab2=[atab2,Table22(:,b),cba(:,b)]; end atab2=[cellstr(strjust(colheads,'left'))';atab2]; atab22=atab2; save atab22.mat atab22; %atab2=[cellstr(strjust(colheads,'left'))'; atab]; %rowd=cellstr(strjust(rowheads,'left')); %cold=cellstr(strjust(colheads,'left')); %save rowd.mat rowd; %save cold.mat cold; %atab = [cellstr(strjust(rowheads,'left')), atab]; %atabb=atab; %save atabb.mat atabb; %atab = [cellstr(strjust(colheads,'left'))'; atab]; wtitle = 'Table_Extremes'; ttitle = 'SS and Percent SS'; digits = ones(1,4*n+1)*(-1); disptxt = displayform(atab2,digits); disptxt = [repmat('-',1,size(disptxt,2));disptxt(1,:); repmat('-',1,size(disptxt,2)); disptxt(2:end,:)] fid = fopen([wtitle '_Run' num2str(cdata.run) '_Comp'... num2str(cdata.compnum),'_Rot' num2str(get(findobj('Tag','rotation'),'value')) '.txt'],'w'); for txti=1:size(disptxt,1) fprintf(fid,'%s',disptxt(txti,:)); fprintf(fid,'\n'); end fclose(fid); commandwindow; end else text(cdata.CP_p(:,1), cdata.CP_p(:,2),num2str([1:size(cdata.CP_p,1)]')); end if cdata.Zlabelflag text(cdata.Azpr(:,1), cdata.Azpr(:,2),cdata.Zlabel, 'FontSize',16); [m n]=size(cdata.Azpr); if m<10 g=m; else g=10; end top=[]; bottom=[]; d=g+1; [a b] = size(cdata.Zlabel); start=1; for c=1:n for k=1:d top(k,c)=cdata.Azpr(k,c); topstr(k,start:start+b-1)=cdata.Zlabel(k,:); %topstr2(k,:)=cdata.Zlabel(k,:); %topstr3(k,:)=cdata.Zlabel(k,:); bot(k,c)=cdata.Azpr(k,c); botstr(k,start:start+b-1)=cdata.Zlabel(k,:); %botstr2(k,:)=cdata.Zlabel(k,:); %botstr3(k,:)=cdata.Zlabel(k,:); end start=start+b+1; end topback=topstr; %topback=[a b]; save topback.mat topback; start=1; for c=1:n for k=1:m h=1; %top=topback; while ((cdata.Azpr(k,c)top(h,c) topp=top; toppstr=topstr; topp(h,c)=cdata.Azpr(k,c); %[c d]=size(topstr(k,:)); toppstr(h,start:start+b-1)=cdata.Zlabel(k,:); while (hg) break; else topp(h,c)=top(f,c); toppstr(h,start:start+b-1)=topstr(f,start:start+b-1); end end toppstr(h,start+b)=' '; top=topp; fintop=top(1:g,1:c); topstr=toppstr; fintopstr=topstr(1:g,:); cdata.top=top; save top.mat top; cdata.fintop=fintop; save fintop.mat fintop; cdata.topstr=topstr; save topstr.mat topstr; cdata.fintopstr=fintopstr; save fintopstr.mat fintopstr; end end end for k=1:m h=1; while ((cdata.Azpr(k,c)>bot(h,c)) && h<=g && hg) break; else bott(h,c)=bot(f,c); bottstr(h,start:start+b-1)=botstr(f,start:start+b-1); end end bottstr(h,start+b)=' '; bot=bott; finbot=bot(1:g,1:c); botstr=bottstr; finbotstr=botstr(1:g,:); cdata.bot=bot; save bot.mat bot; cdata.finbot=finbot; save finbot.mat finbot; cdata.botstr=botstr; save botstr.mat botstr; cdata.finbotstr=finbotstr; save finbotstr.mat finbotstr; end end end start=start+b+1; end Table2=zeros(g,2*n); per100=100; %compsum=[]; colheads=strvcat('Source'); for compi=1:n colheads = strvcat(colheads,['Comp' num2str(compi) ' High'], ['Comp' num2str(compi) 'High Val'], ['Comp' num2str(compi) 'Low' ],['Comp' num2str(compi) 'Low Val' ]); end save colheads.mat colheads; %colheads = strvcat('Source ', 'External '); %for compi=1:max(cdata.compnum) % colheads = strvcat(colheads,['Comp' num2str(compi) ' ']); %end %colheads = strvcat(colheads, 'Allcomp'); %Table2(:,1)=[ cdata.tsum per100... %cdata.tsum_p cdata.total_perc_p per100... %cdata.tsum_e cdata.total_perc_e per100]'; %************************************************ %if length(cdata.compnum)==1 % for compi=1:cdata.compnum % eval(['Table(:,1+compi)=[' 'cdata.component.c' num2str(compi) '_sum %'... % 'cdata.component.c' num2str(compi) '_perc '... % 'cdata.component.c' num2str(compi) '_sum_p '... % 'cdata.component.total_c' num2str(compi) '_perc_p '... % 'cdata.component.c' num2str(compi) '_perc_p '... % 'cdata.component.c' num2str(compi) '_sum_e ' ... % 'cdata.component.total_c' num2str(compi) '_perc_e '... % 'cdata.component.c' num2str(compi) '_perc_e];']); % end % elseif length(cdata.compnum)>1 % for compi=1:cdata.compnum(1) % eval(['Table(1:2,1+compi)=['... % 'cdata.component.c' num2str(compi) '_sum '... % 'cdata.component.c' num2str(compi) '_perc ];']); % end % for compi=1:cdata.compnum(2) % eval(['Table(3:5,1+compi)=['... % 'cdata.component.c' num2str(compi) '_sum_p '... % 'cdata.component.total_c' num2str(compi) '_perc_p '... % 'cdata.component.c' num2str(compi) '_perc_p ];']); % end % for compi=1:cdata.compnum(3) % eval(['Table(6:8,1+compi)=['... % 'cdata.component.c' num2str(compi) '_sum_e '... % 'cdata.component.total_c' num2str(compi) '_perc_e '... % 'cdata.component.c' num2str(compi) '_perc_e ];']); % end % % end % eval(['Table(:,end)=[' 'cdata.comp_sum '... % 'cdata.comp_sum_perc '... % 'cdata.comp_sum_p '... % 'cdata.component.total_comp_perc_p '... % 'cdata.comp_sum_perc_p '... % 'cdata.comp_sum_e '... % 'cdata.component.total_comp_perc_e '... % 'cdata.comp_sum_perc_e]; ']); % %************************************************ rowheads = strvcat('1','2','3','4',... '5','6','7','8','9','10'); %atab = num2cell(fintop); %atab2= num2cell(finbot); t=size(fintop,2); for i=1:size(fintop,1) %p=0; for j=1:size(fintop,2) %if (isinf(atab{i,j})) %atab{i,j} = []; %end %if %atab{i,j} = sprintf('%.2f', atab{i,j}); %end %if j>1 % p=p+3; %end Table2(i, 2*j-1)=fintop(i,j); %p=1; Table2(i, 2*j)=finbot(i,j); end end [q r]=size(fintopstr); save q.mat q; save r.mat r; rowheads1=[]; rowheads2=[]; for i=1:q %i=1; %j=1; s=r/t; u=s; starts=1; for j=1:t %matr(i,j)=mat2cell(fintopstr(i,starts:u)); %matri(i,j)=mat2cell(finbotstr(i,starts:u)); rowheads1=strvcat(rowheads1,[fintopstr(i,starts:u)],[finbotstr(i,starts:u)]); if j==t save rowheads1.mat rowheads1; save j.mat j; end starts=starts+s; u=u+s; if u > r u=r; end end rowheads2=strvcat(rowheads2,rowheads1); end %save matr.mat matr; %save matri.mat matri; %for i=1:size(matr,1) %p=0; %for j=1:size(matr,2) % if j>1 % p=p+3; % end %matrf=cell2mat(matr); %matrif=cell2mat(matri); %save matrf.mat matrf; %save matrif.mat matrif; %Table2(i,j+p)=matr(i,j); %if p==0 % continue; %else %Table2(i,j+p-2)=matri(i,j); %end %end %end atab2=[]; %save atab.mat atab; %save Table2.mat Table2; atab2=[cellstr(strjust(rowheads,'left')),atab2]; abc=cellstr(strjust(rowheads1,'left')); startt=1; for d=1:q cba(d,1:2*t)=abc(startt:startt+2*t-1,1)'; startt=startt+2*t; end save cba.mat cba; save abc.mat abc; save atab2.mat atab2; save Table2.mat Table2; Table22=num2cell(Table2); save rowheads2.mat rowheads2; for b=1:2*n atab2=[atab2,Table22(:,b),cba(:,b)]; end atab2=[cellstr(strjust(colheads,'left'))';atab2]; atab22=atab2; save atab22.mat atab22; %atab2=[cellstr(strjust(colheads,'left'))'; atab]; %rowd=cellstr(strjust(rowheads,'left')); %cold=cellstr(strjust(colheads,'left')); %save rowd.mat rowd; %save cold.mat cold; %atab = [cellstr(strjust(rowheads,'left')), atab]; %atabb=atab; %save atabb.mat atabb; %atab = [cellstr(strjust(colheads,'left'))'; atab]; wtitle = 'Table_Extremes'; ttitle = 'SS and Percent SS'; digits = ones(1,4*n+1)*(-1); disptxt = displayform(atab2,digits); disptxt = [repmat('-',1,size(disptxt,2));disptxt(1,:); repmat('-',1,size(disptxt,2)); disptxt(2:end,:)] fid = fopen([wtitle '_Run' num2str(cdata.run) '_Comp'... num2str(cdata.compnum),'_Rot' num2str(get(findobj('Tag','rotation'),'value')) '.txt'],'w'); for txti=1:size(disptxt,1) fprintf(fid,'%s',disptxt(txti,:)); fprintf(fid,'\n'); end fclose(fid); commandwindow; else text(cdata.Azpr(:,1), cdata.Azpr(:,2),num2str([1:size(cdata.Z,2)]')); end xlabel('Component 1','fontsize',16,'fontweight','bold'); ylabel('Component 2','fontsize',16,'fontweight','bold'); elseif (length(cdata.compnum)>1 && cdata.compnum(2) ==1) || (length(cdata.compnum)==1 && cdata.compnum ==1) plot(cdata.CP_p(:,1),[1:size(cdata.CP_p(:,1),1)]','or'); hold on plot(cdata.Azpr(:,1),[1:size(cdata.Azpr(:,1),1)]','ob'); if cdata.Glabelflag text(cdata.CP_p(:,1),[1:size(cdata.CP_p,1)]',cdata.Glabel,'FontSize',16); [m n]=size(cdata.CP_p); if m<10 g=m; else g=10; end top=[]; bottom=[]; d=g+1; [a b] = size(cdata.Glabel); start=1; for c=1:n for k=1:d top(k,c)=cdata.CP_p(k,c); topstr(k,start:start+b-1)=cdata.Glabel(k,:); %topstr2(k,:)=cdata.Zlabel(k,:); %topstr3(k,:)=cdata.Zlabel(k,:); bot(k,c)=cdata.CP_p(k,c); botstr(k,start:start+b-1)=cdata.Glabel(k,:); %botstr2(k,:)=cdata.Zlabel(k,:); %botstr3(k,:)=cdata.Zlabel(k,:); end start=start+b+1; end topback=topstr; %topback=[a b]; save topback.mat topback; start=1; for c=1:n for k=1:m h=1; %top=topback; while ((cdata.CP_p(k,c)top(h,c) topp=top; toppstr=topstr; topp(h,c)=cdata.CP_p(k,c); %[c d]=size(topstr(k,:)); toppstr(h,start:start+b-1)=cdata.Glabel(k,:); while (hg) break; else topp(h,c)=top(f,c); toppstr(h,start:start+b-1)=topstr(f,start:start+b-1); end end toppstr(h,start+b)=' '; top=topp; fintop=top(1:g,1:c); topstr=toppstr; fintopstr=topstr(1:g,:); cdata.top=top; save top.mat top; cdata.fintop=fintop; save fintop.mat fintop; cdata.topstr=topstr; save topstr.mat topstr; cdata.fintopstr=fintopstr; save fintopstr.mat fintopstr; end end end for k=1:m h=1; while ((cdata.CP_p(k,c)>bot(h,c)) && h<=g && hg) break; else bott(h,c)=bot(f,c); bottstr(h,start:start+b-1)=botstr(f,start:start+b-1); end end bottstr(h,start+b)=' '; bot=bott; finbot=bot(1:g,1:c); botstr=bottstr; finbotstr=botstr(1:g,:); cdata.bot=bot; save bot.mat bot; cdata.finbot=finbot; save finbot.mat finbot; cdata.botstr=botstr; save botstr.mat botstr; cdata.finbotstr=finbotstr; save finbotstr.mat finbotstr; end end end start=start+b+1; end Table2=zeros(g,2*n); per100=100; %compsum=[]; colheads=strvcat('Source'); for compi=1:n colheads = strvcat(colheads,['Comp' num2str(compi) ' High'], ['Comp' num2str(compi) 'High Val'], ['Comp' num2str(compi) 'Low' ],['Comp' num2str(compi) 'Low Val' ]); end save colheads.mat colheads; %colheads = strvcat('Source ', 'External '); %for compi=1:max(cdata.compnum) % colheads = strvcat(colheads,['Comp' num2str(compi) ' ']); %end %colheads = strvcat(colheads, 'Allcomp'); %Table2(:,1)=[ cdata.tsum per100... %cdata.tsum_p cdata.total_perc_p per100... %cdata.tsum_e cdata.total_perc_e per100]'; %************************************************ %if length(cdata.compnum)==1 % for compi=1:cdata.compnum % eval(['Table(:,1+compi)=[' 'cdata.component.c' num2str(compi) '_sum %'... % 'cdata.component.c' num2str(compi) '_perc '... % 'cdata.component.c' num2str(compi) '_sum_p '... % 'cdata.component.total_c' num2str(compi) '_perc_p '... % 'cdata.component.c' num2str(compi) '_perc_p '... % 'cdata.component.c' num2str(compi) '_sum_e ' ... % 'cdata.component.total_c' num2str(compi) '_perc_e '... % 'cdata.component.c' num2str(compi) '_perc_e];']); % end % elseif length(cdata.compnum)>1 % for compi=1:cdata.compnum(1) % eval(['Table(1:2,1+compi)=['... % 'cdata.component.c' num2str(compi) '_sum '... % 'cdata.component.c' num2str(compi) '_perc ];']); % end % for compi=1:cdata.compnum(2) % eval(['Table(3:5,1+compi)=['... % 'cdata.component.c' num2str(compi) '_sum_p '... % 'cdata.component.total_c' num2str(compi) '_perc_p '... % 'cdata.component.c' num2str(compi) '_perc_p ];']); % end % for compi=1:cdata.compnum(3) % eval(['Table(6:8,1+compi)=['... % 'cdata.component.c' num2str(compi) '_sum_e '... % 'cdata.component.total_c' num2str(compi) '_perc_e '... % 'cdata.component.c' num2str(compi) '_perc_e ];']); % end % % end % eval(['Table(:,end)=[' 'cdata.comp_sum '... % 'cdata.comp_sum_perc '... % 'cdata.comp_sum_p '... % 'cdata.component.total_comp_perc_p '... % 'cdata.comp_sum_perc_p '... % 'cdata.comp_sum_e '... % 'cdata.component.total_comp_perc_e '... % 'cdata.comp_sum_perc_e]; ']); % %************************************************ rowheads = strvcat('1','2','3','4',... '5','6','7','8','9','10'); %atab = num2cell(fintop); %atab2= num2cell(finbot); t=size(fintop,2); for i=1:size(fintop,1) %p=0; for j=1:size(fintop,2) %if (isinf(atab{i,j})) %atab{i,j} = []; %end %if %atab{i,j} = sprintf('%.2f', atab{i,j}); %end %if j>1 % p=p+3; %end Table2(i, 2*j-1)=fintop(i,j); %p=1; Table2(i, 2*j)=finbot(i,j); end end [q r]=size(fintopstr); save q.mat q; save r.mat r; rowheads1=[]; rowheads2=[]; for i=1:q %i=1; %j=1; s=r/t; u=s; starts=1; for j=1:t %matr(i,j)=mat2cell(fintopstr(i,starts:u)); %matri(i,j)=mat2cell(finbotstr(i,starts:u)); rowheads1=strvcat(rowheads1,[fintopstr(i,starts:u)],[finbotstr(i,starts:u)]); if j==t save rowheads1.mat rowheads1; save j.mat j; end starts=starts+s; u=u+s; if u > r u=r; end end rowheads2=strvcat(rowheads2,rowheads1); end %save matr.mat matr; %save matri.mat matri; %for i=1:size(matr,1) %p=0; %for j=1:size(matr,2) % if j>1 % p=p+3; % end %matrf=cell2mat(matr); %matrif=cell2mat(matri); %save matrf.mat matrf; %save matrif.mat matrif; %Table2(i,j+p)=matr(i,j); %if p==0 % continue; %else %Table2(i,j+p-2)=matri(i,j); %end %end %end atab2=[]; %save atab.mat atab; %save Table2.mat Table2; atab2=[cellstr(strjust(rowheads,'left')),atab2]; abc=cellstr(strjust(rowheads1,'left')); startt=1; for d=1:q cba(d,1:2*t)=abc(startt:startt+2*t-1,1)'; startt=startt+2*t; end save cba.mat cba; save abc.mat abc; save atab2.mat atab2; save Table2.mat Table2; Table22=num2cell(Table2); save rowheads2.mat rowheads2; for b=1:2*n atab2=[atab2,Table22(:,b),cba(:,b)]; end atab2=[cellstr(strjust(colheads,'left'))';atab2]; atab22=atab2; save atab22.mat atab22; %atab2=[cellstr(strjust(colheads,'left'))'; atab]; %rowd=cellstr(strjust(rowheads,'left')); %cold=cellstr(strjust(colheads,'left')); %save rowd.mat rowd; %save cold.mat cold; %atab = [cellstr(strjust(rowheads,'left')), atab]; %atabb=atab; %save atabb.mat atabb; %atab = [cellstr(strjust(colheads,'left'))'; atab]; wtitle = 'Table_Extremes'; ttitle = 'SS and Percent SS'; digits = ones(1,4*n+1)*(-1); disptxt = displayform(atab2,digits); disptxt = [repmat('-',1,size(disptxt,2));disptxt(1,:); repmat('-',1,size(disptxt,2)); disptxt(2:end,:)] fid = fopen([wtitle '_Run' num2str(cdata.run) '_Comp'... num2str(cdata.compnum),'_Rot' num2str(get(findobj('Tag','rotation'),'value')) '.txt'],'w'); for txti=1:size(disptxt,1) fprintf(fid,'%s',disptxt(txti,:)); fprintf(fid,'\n'); end fclose(fid); commandwindow; else text(cdata.CP_p(:,1),[1:size(cdata.CP_p,1)]', num2str([1:size(cdata.CP_p,1)]')); end if cdata.Zlabelflag text(cdata.Azpr(:,1),[1:size(cdata.Azpr,1)]',cdata.Zlabel,'FontSize',16); [m n]=size(cdata.Azpr); if m<10 g=m; else g=10; end top=[]; bottom=[]; d=g+1; [a b] = size(cdata.Zlabel); start=1; for c=1:n for k=1:d top(k,c)=cdata.Azpr(k,c); topstr(k,start:start+b-1)=cdata.Zlabel(k,:); %topstr2(k,:)=cdata.Zlabel(k,:); %topstr3(k,:)=cdata.Zlabel(k,:); bot(k,c)=cdata.Azpr(k,c); botstr(k,start:start+b-1)=cdata.Zlabel(k,:); %botstr2(k,:)=cdata.Zlabel(k,:); %botstr3(k,:)=cdata.Zlabel(k,:); end start=start+b+1; end topback=topstr; %topback=[a b]; save topback.mat topback; start=1; for c=1:n for k=1:m h=1; %top=topback; while ((cdata.Azpr(k,c)top(h,c) topp=top; toppstr=topstr; topp(h,c)=cdata.Azpr(k,c); %[c d]=size(topstr(k,:)); toppstr(h,start:start+b-1)=cdata.Zlabel(k,:); while (hg) break; else topp(h,c)=top(f,c); toppstr(h,start:start+b-1)=topstr(f,start:start+b-1); end end toppstr(h,start+b)=' '; top=topp; fintop=top(1:g,1:c); topstr=toppstr; fintopstr=topstr(1:g,:); cdata.top=top; save top.mat top; cdata.fintop=fintop; save fintop.mat fintop; cdata.topstr=topstr; save topstr.mat topstr; cdata.fintopstr=fintopstr; save fintopstr.mat fintopstr; end end end for k=1:m h=1; while ((cdata.Azpr(k,c)>bot(h,c)) && h<=g && hg) break; else bott(h,c)=bot(f,c); bottstr(h,start:start+b-1)=botstr(f,start:start+b-1); end end bottstr(h,start+b)=' '; bot=bott; finbot=bot(1:g,1:c); botstr=bottstr; finbotstr=botstr(1:g,:); cdata.bot=bot; save bot.mat bot; cdata.finbot=finbot; save finbot.mat finbot; cdata.botstr=botstr; save botstr.mat botstr; cdata.finbotstr=finbotstr; save finbotstr.mat finbotstr; end end end start=start+b+1; end Table2=zeros(g,2*n); per100=100; %compsum=[]; colheads=strvcat('Source'); for compi=1:n colheads = strvcat(colheads,['Comp' num2str(compi) ' High'], ['Comp' num2str(compi) 'High Val'], ['Comp' num2str(compi) 'Low' ],['Comp' num2str(compi) 'Low Val' ]); end save colheads.mat colheads; %colheads = strvcat('Source ', 'External '); %for compi=1:max(cdata.compnum) % colheads = strvcat(colheads,['Comp' num2str(compi) ' ']); %end %colheads = strvcat(colheads, 'Allcomp'); %Table2(:,1)=[ cdata.tsum per100... %cdata.tsum_p cdata.total_perc_p per100... %cdata.tsum_e cdata.total_perc_e per100]'; %************************************************ %if length(cdata.compnum)==1 % for compi=1:cdata.compnum % eval(['Table(:,1+compi)=[' 'cdata.component.c' num2str(compi) '_sum %'... % 'cdata.component.c' num2str(compi) '_perc '... % 'cdata.component.c' num2str(compi) '_sum_p '... % 'cdata.component.total_c' num2str(compi) '_perc_p '... % 'cdata.component.c' num2str(compi) '_perc_p '... % 'cdata.component.c' num2str(compi) '_sum_e ' ... % 'cdata.component.total_c' num2str(compi) '_perc_e '... % 'cdata.component.c' num2str(compi) '_perc_e];']); % end % elseif length(cdata.compnum)>1 % for compi=1:cdata.compnum(1) % eval(['Table(1:2,1+compi)=['... % 'cdata.component.c' num2str(compi) '_sum '... % 'cdata.component.c' num2str(compi) '_perc ];']); % end % for compi=1:cdata.compnum(2) % eval(['Table(3:5,1+compi)=['... % 'cdata.component.c' num2str(compi) '_sum_p '... % 'cdata.component.total_c' num2str(compi) '_perc_p '... % 'cdata.component.c' num2str(compi) '_perc_p ];']); % end % for compi=1:cdata.compnum(3) % eval(['Table(6:8,1+compi)=['... % 'cdata.component.c' num2str(compi) '_sum_e '... % 'cdata.component.total_c' num2str(compi) '_perc_e '... % 'cdata.component.c' num2str(compi) '_perc_e ];']); % end % % end % eval(['Table(:,end)=[' 'cdata.comp_sum '... % 'cdata.comp_sum_perc '... % 'cdata.comp_sum_p '... % 'cdata.component.total_comp_perc_p '... % 'cdata.comp_sum_perc_p '... % 'cdata.comp_sum_e '... % 'cdata.component.total_comp_perc_e '... % 'cdata.comp_sum_perc_e]; ']); % %************************************************ rowheads = strvcat('1','2','3','4',... '5','6','7','8','9','10'); %atab = num2cell(fintop); %atab2= num2cell(finbot); t=size(fintop,2); for i=1:size(fintop,1) %p=0; for j=1:size(fintop,2) %if (isinf(atab{i,j})) %atab{i,j} = []; %end %if %atab{i,j} = sprintf('%.2f', atab{i,j}); %end %if j>1 % p=p+3; %end Table2(i, 2*j-1)=fintop(i,j); %p=1; Table2(i, 2*j)=finbot(i,j); end end [q r]=size(fintopstr); save q.mat q; save r.mat r; rowheads1=[]; rowheads2=[]; for i=1:q %i=1; %j=1; s=r/t; u=s; starts=1; for j=1:t %matr(i,j)=mat2cell(fintopstr(i,starts:u)); %matri(i,j)=mat2cell(finbotstr(i,starts:u)); rowheads1=strvcat(rowheads1,[fintopstr(i,starts:u)],[finbotstr(i,starts:u)]); if j==t save rowheads1.mat rowheads1; save j.mat j; end starts=starts+s; u=u+s; if u > r u=r; end end rowheads2=strvcat(rowheads2,rowheads1); end %save matr.mat matr; %save matri.mat matri; %for i=1:size(matr,1) %p=0; %for j=1:size(matr,2) % if j>1 % p=p+3; % end %matrf=cell2mat(matr); %matrif=cell2mat(matri); %save matrf.mat matrf; %save matrif.mat matrif; %Table2(i,j+p)=matr(i,j); %if p==0 % continue; %else %Table2(i,j+p-2)=matri(i,j); %end %end %end atab2=[]; %save atab.mat atab; %save Table2.mat Table2; atab2=[cellstr(strjust(rowheads,'left')),atab2]; abc=cellstr(strjust(rowheads1,'left')); startt=1; for d=1:q cba(d,1:2*t)=abc(startt:startt+2*t-1,1)'; startt=startt+2*t; end save cba.mat cba; save abc.mat abc; save atab2.mat atab2; save Table2.mat Table2; Table22=num2cell(Table2); save rowheads2.mat rowheads2; for b=1:2*n atab2=[atab2,Table22(:,b),cba(:,b)]; end atab2=[cellstr(strjust(colheads,'left'))';atab2]; atab22=atab2; save atab22.mat atab22; %atab2=[cellstr(strjust(colheads,'left'))'; atab]; %rowd=cellstr(strjust(rowheads,'left')); %cold=cellstr(strjust(colheads,'left')); %save rowd.mat rowd; %save cold.mat cold; %atab = [cellstr(strjust(rowheads,'left')), atab]; %atabb=atab; %save atabb.mat atabb; %atab = [cellstr(strjust(colheads,'left'))'; atab]; wtitle = 'Table_Extremes'; ttitle = 'SS and Percent SS'; digits = ones(1,4*n+1)*(-1); disptxt = displayform(atab2,digits); disptxt = [repmat('-',1,size(disptxt,2));disptxt(1,:); repmat('-',1,size(disptxt,2)); disptxt(2:end,:)] fid = fopen([wtitle '_Run' num2str(cdata.run) '_Comp'... num2str(cdata.compnum),'_Rot' num2str(get(findobj('Tag','rotation'),'value')) '.txt'],'w'); for txti=1:size(disptxt,1) fprintf(fid,'%s',disptxt(txti,:)); fprintf(fid,'\n'); end fclose(fid); commandwindow; else text(cdata.Azpr(:,1),[1:size(cdata.Azpr,1)]',num2str([1:size(cdata.Z,2)]')); end hold off % msgbox('It''s unfitable to only present one dimension figure for the variable: Fzpr','Warining','warn'); xlabel('Component 1','fontsize',16,'fontweight','bold'); end legend('Group','Variables',4);legend('boxoff'); saveas(fh,'Between_loading.fig'); case 'Not_Acc_for_by_G' % User selects within component. fh = figure('MenuBar','none','Visible','on', 'HandleVisibility','callback',... 'Toolbar','figure','Name','Within component loading','NumberTitle','off'); if length(cdata.compnum)>1 && cdata.compnum(3) >=3 || (length(cdata.compnum)==1 && cdata.compnum >=3) scatter(cdata.Azer(:,1),cdata.Azer(:,2)); if cdata.Zlabelflag text(cdata.Azer(:,1), cdata.Azer(:,2),cdata.Zlabel,'FontSize',16); [m n]=size(cdata.Azer); if m<10 g=m; else g=10; end top=[]; bottom=[]; d=g+1; [a b] = size(cdata.Zlabel); start=1; for c=1:n for k=1:d top(k,c)=cdata.Azer(k,c); topstr(k,start:start+b-1)=cdata.Zlabel(k,:); %topstr2(k,:)=cdata.Zlabel(k,:); %topstr3(k,:)=cdata.Zlabel(k,:); bot(k,c)=cdata.Azer(k,c); botstr(k,start:start+b-1)=cdata.Zlabel(k,:); %botstr2(k,:)=cdata.Zlabel(k,:); %botstr3(k,:)=cdata.Zlabel(k,:); end start=start+b+1; end topback=topstr; %topback=[a b]; save topback.mat topback; start=1; for c=1:n for k=1:m h=1; %top=topback; while ((cdata.Azer(k,c)top(h,c) topp=top; toppstr=topstr; topp(h,c)=cdata.Azer(k,c); %[c d]=size(topstr(k,:)); toppstr(h,start:start+b-1)=cdata.Zlabel(k,:); while (hg) break; else topp(h,c)=top(f,c); toppstr(h,start:start+b-1)=topstr(f,start:start+b-1); end end toppstr(h,start+b)=' '; top=topp; fintop=top(1:g,1:c); topstr=toppstr; fintopstr=topstr(1:g,:); cdata.top=top; save top.mat top; cdata.fintop=fintop; save fintop.mat fintop; cdata.topstr=topstr; save topstr.mat topstr; cdata.fintopstr=fintopstr; save fintopstr.mat fintopstr; end end end for k=1:m h=1; while ((cdata.Azer(k,c)>bot(h,c)) && h<=g && hg) break; else bott(h,c)=bot(f,c); bottstr(h,start:start+b-1)=botstr(f,start:start+b-1); end end bottstr(h,start+b)=' '; bot=bott; finbot=bot(1:g,1:c); botstr=bottstr; finbotstr=botstr(1:g,:); cdata.bot=bot; save bot.mat bot; cdata.finbot=finbot; save finbot.mat finbot; cdata.botstr=botstr; save botstr.mat botstr; cdata.finbotstr=finbotstr; save finbotstr.mat finbotstr; end end end start=start+b+1; end Table2=zeros(g,2*n); per100=100; %compsum=[]; colheads=strvcat('Source'); for compi=1:n colheads = strvcat(colheads,['Comp' num2str(compi) ' High'], ['Comp' num2str(compi) 'High Val'], ['Comp' num2str(compi) 'Low' ],['Comp' num2str(compi) 'Low Val' ]); end save colheads.mat colheads; %colheads = strvcat('Source ', 'External '); %for compi=1:max(cdata.compnum) % colheads = strvcat(colheads,['Comp' num2str(compi) ' ']); %end %colheads = strvcat(colheads, 'Allcomp'); %Table2(:,1)=[ cdata.tsum per100... %cdata.tsum_p cdata.total_perc_p per100... %cdata.tsum_e cdata.total_perc_e per100]'; %************************************************ %if length(cdata.compnum)==1 % for compi=1:cdata.compnum % eval(['Table(:,1+compi)=[' 'cdata.component.c' num2str(compi) '_sum %'... % 'cdata.component.c' num2str(compi) '_perc '... % 'cdata.component.c' num2str(compi) '_sum_p '... % 'cdata.component.total_c' num2str(compi) '_perc_p '... % 'cdata.component.c' num2str(compi) '_perc_p '... % 'cdata.component.c' num2str(compi) '_sum_e ' ... % 'cdata.component.total_c' num2str(compi) '_perc_e '... % 'cdata.component.c' num2str(compi) '_perc_e];']); % end % elseif length(cdata.compnum)>1 % for compi=1:cdata.compnum(1) % eval(['Table(1:2,1+compi)=['... % 'cdata.component.c' num2str(compi) '_sum '... % 'cdata.component.c' num2str(compi) '_perc ];']); % end % for compi=1:cdata.compnum(2) % eval(['Table(3:5,1+compi)=['... % 'cdata.component.c' num2str(compi) '_sum_p '... % 'cdata.component.total_c' num2str(compi) '_perc_p '... % 'cdata.component.c' num2str(compi) '_perc_p ];']); % end % for compi=1:cdata.compnum(3) % eval(['Table(6:8,1+compi)=['... % 'cdata.component.c' num2str(compi) '_sum_e '... % 'cdata.component.total_c' num2str(compi) '_perc_e '... % 'cdata.component.c' num2str(compi) '_perc_e ];']); % end % % end % eval(['Table(:,end)=[' 'cdata.comp_sum '... % 'cdata.comp_sum_perc '... % 'cdata.comp_sum_p '... % 'cdata.component.total_comp_perc_p '... % 'cdata.comp_sum_perc_p '... % 'cdata.comp_sum_e '... % 'cdata.component.total_comp_perc_e '... % 'cdata.comp_sum_perc_e]; ']); % %************************************************ rowheads = strvcat('1','2','3','4',... '5','6','7','8','9','10'); %atab = num2cell(fintop); %atab2= num2cell(finbot); t=size(fintop,2); for i=1:size(fintop,1) %p=0; for j=1:size(fintop,2) %if (isinf(atab{i,j})) %atab{i,j} = []; %end %if %atab{i,j} = sprintf('%.2f', atab{i,j}); %end %if j>1 % p=p+3; %end Table2(i, 2*j-1)=fintop(i,j); %p=1; Table2(i, 2*j)=finbot(i,j); end end [q r]=size(fintopstr); save q.mat q; save r.mat r; rowheads1=[]; rowheads2=[]; for i=1:q %i=1; %j=1; s=r/t; u=s; starts=1; for j=1:t %matr(i,j)=mat2cell(fintopstr(i,starts:u)); %matri(i,j)=mat2cell(finbotstr(i,starts:u)); rowheads1=strvcat(rowheads1,[fintopstr(i,starts:u)],[finbotstr(i,starts:u)]); if j==t save rowheads1.mat rowheads1; save j.mat j; end starts=starts+s; u=u+s; if u > r u=r; end end rowheads2=strvcat(rowheads2,rowheads1); end %save matr.mat matr; %save matri.mat matri; %for i=1:size(matr,1) %p=0; %for j=1:size(matr,2) % if j>1 % p=p+3; % end %matrf=cell2mat(matr); %matrif=cell2mat(matri); %save matrf.mat matrf; %save matrif.mat matrif; %Table2(i,j+p)=matr(i,j); %if p==0 % continue; %else %Table2(i,j+p-2)=matri(i,j); %end %end %end atab2=[]; %save atab.mat atab; %save Table2.mat Table2; atab2=[cellstr(strjust(rowheads,'left')),atab2]; abc=cellstr(strjust(rowheads1,'left')); startt=1; for d=1:q cba(d,1:2*t)=abc(startt:startt+2*t-1,1)'; startt=startt+2*t; end save cba.mat cba; save abc.mat abc; save atab2.mat atab2; save Table2.mat Table2; Table22=num2cell(Table2); save rowheads2.mat rowheads2; for b=1:2*n atab2=[atab2,Table22(:,b),cba(:,b)]; end atab2=[cellstr(strjust(colheads,'left'))';atab2]; atab22=atab2; save atab22.mat atab22; %atab2=[cellstr(strjust(colheads,'left'))'; atab]; %rowd=cellstr(strjust(rowheads,'left')); %cold=cellstr(strjust(colheads,'left')); %save rowd.mat rowd; %save cold.mat cold; %atab = [cellstr(strjust(rowheads,'left')), atab]; %atabb=atab; %save atabb.mat atabb; %atab = [cellstr(strjust(colheads,'left'))'; atab]; wtitle = 'Table_Extremes'; ttitle = 'SS and Percent SS'; digits = ones(1,4*n+1)*(-1); disptxt = displayform(atab2,digits); disptxt = [repmat('-',1,size(disptxt,2));disptxt(1,:); repmat('-',1,size(disptxt,2)); disptxt(2:end,:)] fid = fopen([wtitle '_Run' num2str(cdata.run) '_Comp'... num2str(cdata.compnum),'_Rot' num2str(get(findobj('Tag','rotation'),'value')) '.txt'],'w'); for txti=1:size(disptxt,1) fprintf(fid,'%s',disptxt(txti,:)); fprintf(fid,'\n'); end fclose(fid); commandwindow; else text(cdata.Azer(:,1), cdata.Azer(:,2),num2str([1:size(cdata.Z,2)]')); end if length(cdata.compnum)>1 && cdata.compnum(3) >=3 || (length(cdata.compnum)==1 && cdata.compnum >=3) title('Only present the first 3 dimensions','fontsize',9,'fontweight','bold'); end xlabel('Component 1','fontsize',16,'fontweight','bold'); ylabel('Component 2','fontsize',16,'fontweight','bold'); %zlabel('Component 3','fontsize',9,'fontweight','bold'); elseif (length(cdata.compnum)>1 && cdata.compnum(3) ==2) || (length(cdata.compnum)==1 && cdata.compnum ==2) scatter(cdata.Azer(:,1), cdata.Azer(:,2)); if cdata.Zlabelflag text(cdata.Azer(:,1), cdata.Azer(:,2),cdata.Zlabel,'FontSize',16); [m n]=size(cdata.Azer); if m<10 g=m; else g=10; end top=[]; bottom=[]; d=g+1; [a b] = size(cdata.Zlabel); start=1; for c=1:n for k=1:d top(k,c)=cdata.Azer(k,c); topstr(k,start:start+b-1)=cdata.Zlabel(k,:); %topstr2(k,:)=cdata.Zlabel(k,:); %topstr3(k,:)=cdata.Zlabel(k,:); bot(k,c)=cdata.Azer(k,c); botstr(k,start:start+b-1)=cdata.Zlabel(k,:); %botstr2(k,:)=cdata.Zlabel(k,:); %botstr3(k,:)=cdata.Zlabel(k,:); end start=start+b+1; end topback=topstr; %topback=[a b]; save topback.mat topback; start=1; for c=1:n for k=1:m h=1; %top=topback; while ((cdata.Azer(k,c)top(h,c) topp=top; toppstr=topstr; topp(h,c)=cdata.Azer(k,c); %[c d]=size(topstr(k,:)); toppstr(h,start:start+b-1)=cdata.Zlabel(k,:); while (hg) break; else topp(h,c)=top(f,c); toppstr(h,start:start+b-1)=topstr(f,start:start+b-1); end end toppstr(h,start+b)=' '; top=topp; fintop=top(1:g,1:c); topstr=toppstr; fintopstr=topstr(1:g,:); cdata.top=top; save top.mat top; cdata.fintop=fintop; save fintop.mat fintop; cdata.topstr=topstr; save topstr.mat topstr; cdata.fintopstr=fintopstr; save fintopstr.mat fintopstr; end end end for k=1:m h=1; while ((cdata.Azer(k,c)>bot(h,c)) && h<=g && hg) break; else bott(h,c)=bot(f,c); bottstr(h,start:start+b-1)=botstr(f,start:start+b-1); end end bottstr(h,start+b)=' '; bot=bott; finbot=bot(1:g,1:c); botstr=bottstr; finbotstr=botstr(1:g,:); cdata.bot=bot; save bot.mat bot; cdata.finbot=finbot; save finbot.mat finbot; cdata.botstr=botstr; save botstr.mat botstr; cdata.finbotstr=finbotstr; save finbotstr.mat finbotstr; end end end start=start+b+1; end Table2=zeros(g,2*n); per100=100; %compsum=[]; colheads=strvcat('Source'); for compi=1:n colheads = strvcat(colheads,['Comp' num2str(compi) ' High'], ['Comp' num2str(compi) 'High Val'], ['Comp' num2str(compi) 'Low' ],['Comp' num2str(compi) 'Low Val' ]); end save colheads.mat colheads; %colheads = strvcat('Source ', 'External '); %for compi=1:max(cdata.compnum) % colheads = strvcat(colheads,['Comp' num2str(compi) ' ']); %end %colheads = strvcat(colheads, 'Allcomp'); %Table2(:,1)=[ cdata.tsum per100... %cdata.tsum_p cdata.total_perc_p per100... %cdata.tsum_e cdata.total_perc_e per100]'; %************************************************ %if length(cdata.compnum)==1 % for compi=1:cdata.compnum % eval(['Table(:,1+compi)=[' 'cdata.component.c' num2str(compi) '_sum %'... % 'cdata.component.c' num2str(compi) '_perc '... % 'cdata.component.c' num2str(compi) '_sum_p '... % 'cdata.component.total_c' num2str(compi) '_perc_p '... % 'cdata.component.c' num2str(compi) '_perc_p '... % 'cdata.component.c' num2str(compi) '_sum_e ' ... % 'cdata.component.total_c' num2str(compi) '_perc_e '... % 'cdata.component.c' num2str(compi) '_perc_e];']); % end % elseif length(cdata.compnum)>1 % for compi=1:cdata.compnum(1) % eval(['Table(1:2,1+compi)=['... % 'cdata.component.c' num2str(compi) '_sum '... % 'cdata.component.c' num2str(compi) '_perc ];']); % end % for compi=1:cdata.compnum(2) % eval(['Table(3:5,1+compi)=['... % 'cdata.component.c' num2str(compi) '_sum_p '... % 'cdata.component.total_c' num2str(compi) '_perc_p '... % 'cdata.component.c' num2str(compi) '_perc_p ];']); % end % for compi=1:cdata.compnum(3) % eval(['Table(6:8,1+compi)=['... % 'cdata.component.c' num2str(compi) '_sum_e '... % 'cdata.component.total_c' num2str(compi) '_perc_e '... % 'cdata.component.c' num2str(compi) '_perc_e ];']); % end % % end % eval(['Table(:,end)=[' 'cdata.comp_sum '... % 'cdata.comp_sum_perc '... % 'cdata.comp_sum_p '... % 'cdata.component.total_comp_perc_p '... % 'cdata.comp_sum_perc_p '... % 'cdata.comp_sum_e '... % 'cdata.component.total_comp_perc_e '... % 'cdata.comp_sum_perc_e]; ']); % %************************************************ rowheads = strvcat('1','2','3','4',... '5','6','7','8','9','10'); %atab = num2cell(fintop); %atab2= num2cell(finbot); t=size(fintop,2); for i=1:size(fintop,1) %p=0; for j=1:size(fintop,2) %if (isinf(atab{i,j})) %atab{i,j} = []; %end %if %atab{i,j} = sprintf('%.2f', atab{i,j}); %end %if j>1 % p=p+3; %end Table2(i, 2*j-1)=fintop(i,j); %p=1; Table2(i, 2*j)=finbot(i,j); end end [q r]=size(fintopstr); save q.mat q; save r.mat r; rowheads1=[]; rowheads2=[]; for i=1:q %i=1; %j=1; s=r/t; u=s; starts=1; for j=1:t %matr(i,j)=mat2cell(fintopstr(i,starts:u)); %matri(i,j)=mat2cell(finbotstr(i,starts:u)); rowheads1=strvcat(rowheads1,[fintopstr(i,starts:u)],[finbotstr(i,starts:u)]); if j==t save rowheads1.mat rowheads1; save j.mat j; end starts=starts+s; u=u+s; if u > r u=r; end end rowheads2=strvcat(rowheads2,rowheads1); end %save matr.mat matr; %save matri.mat matri; %for i=1:size(matr,1) %p=0; %for j=1:size(matr,2) % if j>1 % p=p+3; % end %matrf=cell2mat(matr); %matrif=cell2mat(matri); %save matrf.mat matrf; %save matrif.mat matrif; %Table2(i,j+p)=matr(i,j); %if p==0 % continue; %else %Table2(i,j+p-2)=matri(i,j); %end %end %end atab2=[]; %save atab.mat atab; %save Table2.mat Table2; atab2=[cellstr(strjust(rowheads,'left')),atab2]; abc=cellstr(strjust(rowheads1,'left')); startt=1; for d=1:q cba(d,1:2*t)=abc(startt:startt+2*t-1,1)'; startt=startt+2*t; end save cba.mat cba; save abc.mat abc; save atab2.mat atab2; save Table2.mat Table2; Table22=num2cell(Table2); save rowheads2.mat rowheads2; for b=1:2*n atab2=[atab2,Table22(:,b),cba(:,b)]; end atab2=[cellstr(strjust(colheads,'left'))';atab2]; atab22=atab2; save atab22.mat atab22; %atab2=[cellstr(strjust(colheads,'left'))'; atab]; %rowd=cellstr(strjust(rowheads,'left')); %cold=cellstr(strjust(colheads,'left')); %save rowd.mat rowd; %save cold.mat cold; %atab = [cellstr(strjust(rowheads,'left')), atab]; %atabb=atab; %save atabb.mat atabb; %atab = [cellstr(strjust(colheads,'left'))'; atab]; wtitle = 'Table_Extremes'; ttitle = 'SS and Percent SS'; digits = ones(1,4*n+1)*(-1); disptxt = displayform(atab2,digits); disptxt = [repmat('-',1,size(disptxt,2));disptxt(1,:); repmat('-',1,size(disptxt,2)); disptxt(2:end,:)] fid = fopen([wtitle '_Run' num2str(cdata.run) '_Comp'... num2str(cdata.compnum),'_Rot' num2str(get(findobj('Tag','rotation'),'value')) '.txt'],'w'); for txti=1:size(disptxt,1) fprintf(fid,'%s',disptxt(txti,:)); fprintf(fid,'\n'); end fclose(fid); commandwindow; else text(cdata.Azer(:,1), cdata.Azer(:,2),num2str([1:size(cdata.Z,2)]')); end xlabel('Component 1','fontsize',16,'fontweight','bold'); ylabel('Component 2','fontsize',16,'fontweight','bold'); elseif (length(cdata.compnum)>1 && cdata.compnum(3) ==1) || (length(cdata.compnum)==1 && cdata.compnum ==1) plot(cdata.Azer(:,1), [1:size(cdata.Azer,1)]','o'); if cdata.Zlabelflag text(cdata.Azer(:,1),[1:size(cdata.Azer,1)]',cdata.Zlabel,'FontSize',16); [m n]=size(cdata.Azer); if m<10 g=m; else g=10; end top=[]; bottom=[]; d=g+1; [a b] = size(cdata.Zlabel); start=1; for c=1:n for k=1:d top(k,c)=cdata.Azer(k,c); topstr(k,start:start+b-1)=cdata.Zlabel(k,:); %topstr2(k,:)=cdata.Zlabel(k,:); %topstr3(k,:)=cdata.Zlabel(k,:); bot(k,c)=cdata.Azer(k,c); botstr(k,start:start+b-1)=cdata.Zlabel(k,:); %botstr2(k,:)=cdata.Zlabel(k,:); %botstr3(k,:)=cdata.Zlabel(k,:); end start=start+b+1; end topback=topstr; %topback=[a b]; save topback.mat topback; start=1; for c=1:n for k=1:m h=1; %top=topback; while ((cdata.Azer(k,c)top(h,c) topp=top; toppstr=topstr; topp(h,c)=cdata.Azer(k,c); %[c d]=size(topstr(k,:)); toppstr(h,start:start+b-1)=cdata.Zlabel(k,:); while (hg) break; else topp(h,c)=top(f,c); toppstr(h,start:start+b-1)=topstr(f,start:start+b-1); end end toppstr(h,start+b)=' '; top=topp; fintop=top(1:g,1:c); topstr=toppstr; fintopstr=topstr(1:g,:); cdata.top=top; save top.mat top; cdata.fintop=fintop; save fintop.mat fintop; cdata.topstr=topstr; save topstr.mat topstr; cdata.fintopstr=fintopstr; save fintopstr.mat fintopstr; end end end for k=1:m h=1; while ((cdata.Azer(k,c)>bot(h,c)) && h<=g && hg) break; else bott(h,c)=bot(f,c); bottstr(h,start:start+b-1)=botstr(f,start:start+b-1); end end bottstr(h,start+b)=' '; bot=bott; finbot=bot(1:g,1:c); botstr=bottstr; finbotstr=botstr(1:g,:); cdata.bot=bot; save bot.mat bot; cdata.finbot=finbot; save finbot.mat finbot; cdata.botstr=botstr; save botstr.mat botstr; cdata.finbotstr=finbotstr; save finbotstr.mat finbotstr; end end end start=start+b+1; end Table2=zeros(g,2*n); per100=100; %compsum=[]; colheads=strvcat('Source'); for compi=1:n colheads = strvcat(colheads,['Comp' num2str(compi) ' High'], ['Comp' num2str(compi) 'High Val'], ['Comp' num2str(compi) 'Low' ],['Comp' num2str(compi) 'Low Val' ]); end save colheads.mat colheads; %colheads = strvcat('Source ', 'External '); %for compi=1:max(cdata.compnum) % colheads = strvcat(colheads,['Comp' num2str(compi) ' ']); %end %colheads = strvcat(colheads, 'Allcomp'); %Table2(:,1)=[ cdata.tsum per100... %cdata.tsum_p cdata.total_perc_p per100... %cdata.tsum_e cdata.total_perc_e per100]'; %************************************************ %if length(cdata.compnum)==1 % for compi=1:cdata.compnum % eval(['Table(:,1+compi)=[' 'cdata.component.c' num2str(compi) '_sum %'... % 'cdata.component.c' num2str(compi) '_perc '... % 'cdata.component.c' num2str(compi) '_sum_p '... % 'cdata.component.total_c' num2str(compi) '_perc_p '... % 'cdata.component.c' num2str(compi) '_perc_p '... % 'cdata.component.c' num2str(compi) '_sum_e ' ... % 'cdata.component.total_c' num2str(compi) '_perc_e '... % 'cdata.component.c' num2str(compi) '_perc_e];']); % end % elseif length(cdata.compnum)>1 % for compi=1:cdata.compnum(1) % eval(['Table(1:2,1+compi)=['... % 'cdata.component.c' num2str(compi) '_sum '... % 'cdata.component.c' num2str(compi) '_perc ];']); % end % for compi=1:cdata.compnum(2) % eval(['Table(3:5,1+compi)=['... % 'cdata.component.c' num2str(compi) '_sum_p '... % 'cdata.component.total_c' num2str(compi) '_perc_p '... % 'cdata.component.c' num2str(compi) '_perc_p ];']); % end % for compi=1:cdata.compnum(3) % eval(['Table(6:8,1+compi)=['... % 'cdata.component.c' num2str(compi) '_sum_e '... % 'cdata.component.total_c' num2str(compi) '_perc_e '... % 'cdata.component.c' num2str(compi) '_perc_e ];']); % end % % end % eval(['Table(:,end)=[' 'cdata.comp_sum '... % 'cdata.comp_sum_perc '... % 'cdata.comp_sum_p '... % 'cdata.component.total_comp_perc_p '... % 'cdata.comp_sum_perc_p '... % 'cdata.comp_sum_e '... % 'cdata.component.total_comp_perc_e '... % 'cdata.comp_sum_perc_e]; ']); % %************************************************ rowheads = strvcat('1','2','3','4',... '5','6','7','8','9','10'); %atab = num2cell(fintop); %atab2= num2cell(finbot); t=size(fintop,2); for i=1:size(fintop,1) %p=0; for j=1:size(fintop,2) %if (isinf(atab{i,j})) %atab{i,j} = []; %end %if %atab{i,j} = sprintf('%.2f', atab{i,j}); %end %if j>1 % p=p+3; %end Table2(i, 2*j-1)=fintop(i,j); %p=1; Table2(i, 2*j)=finbot(i,j); end end [q r]=size(fintopstr); save q.mat q; save r.mat r; rowheads1=[]; rowheads2=[]; for i=1:q %i=1; %j=1; s=r/t; u=s; starts=1; for j=1:t %matr(i,j)=mat2cell(fintopstr(i,starts:u)); %matri(i,j)=mat2cell(finbotstr(i,starts:u)); rowheads1=strvcat(rowheads1,[fintopstr(i,starts:u)],[finbotstr(i,starts:u)]); if j==t save rowheads1.mat rowheads1; save j.mat j; end starts=starts+s; u=u+s; if u > r u=r; end end rowheads2=strvcat(rowheads2,rowheads1); end %save matr.mat matr; %save matri.mat matri; %for i=1:size(matr,1) %p=0; %for j=1:size(matr,2) % if j>1 % p=p+3; % end %matrf=cell2mat(matr); %matrif=cell2mat(matri); %save matrf.mat matrf; %save matrif.mat matrif; %Table2(i,j+p)=matr(i,j); %if p==0 % continue; %else %Table2(i,j+p-2)=matri(i,j); %end %end %end atab2=[]; %save atab.mat atab; %save Table2.mat Table2; atab2=[cellstr(strjust(rowheads,'left')),atab2]; abc=cellstr(strjust(rowheads1,'left')); startt=1; for d=1:q cba(d,1:2*t)=abc(startt:startt+2*t-1,1)'; startt=startt+2*t; end save cba.mat cba; save abc.mat abc; save atab2.mat atab2; save Table2.mat Table2; Table22=num2cell(Table2); save rowheads2.mat rowheads2; for b=1:2*n atab2=[atab2,Table22(:,b),cba(:,b)]; end atab2=[cellstr(strjust(colheads,'left'))';atab2]; atab22=atab2; save atab22.mat atab22; %atab2=[cellstr(strjust(colheads,'left'))'; atab]; %rowd=cellstr(strjust(rowheads,'left')); %cold=cellstr(strjust(colheads,'left')); %save rowd.mat rowd; %save cold.mat cold; %atab = [cellstr(strjust(rowheads,'left')), atab]; %atabb=atab; %save atabb.mat atabb; %atab = [cellstr(strjust(colheads,'left'))'; atab]; wtitle = 'Table_Extremes'; ttitle = 'SS and Percent SS'; digits = ones(1,4*n+1)*(-1); disptxt = displayform(atab2,digits); disptxt = [repmat('-',1,size(disptxt,2));disptxt(1,:); repmat('-',1,size(disptxt,2)); disptxt(2:end,:)] fid = fopen([wtitle '_Run' num2str(cdata.run) '_Comp'... num2str(cdata.compnum),'_Rot' num2str(get(findobj('Tag','rotation'),'value')) '.txt'],'w'); for txti=1:size(disptxt,1) fprintf(fid,'%s',disptxt(txti,:)); fprintf(fid,'\n'); end fclose(fid); commandwindow; else text(cdata.Azer(:,1),[1:size(cdata.Azer,1)]',num2str([1:size(cdata.Z,2)]')); end xlabel('Component 1','fontsize',16,'fontweight','bold'); end legend('Variables',4); legend('boxoff'); saveas(fh,'Within_loading.fig'); case 'Eigenvalues_by_Total' % User selects within component. fh=figure('MenuBar','none','Visible','on', 'HandleVisibility','callback',... 'Toolbar','figure','Name','Eigenvalues from total','NumberTitle','off'); plot([1:length(cdata.Dz)]',cdata.Dz,'-ok'); ylabel('Eigenvalues','fontsize',9,'fontweight','bold'); saveas(fh,'Eigenvalues_by_total.fig'); case 'Eigenvalues_by_G' % User selects within component. fh=figure('MenuBar','none','Visible','on', 'HandleVisibility','callback',... 'Toolbar','figure','Name','Eigenvalues from between','NumberTitle','off'); plot([1:length(cdata.Dzp)]',cdata.Dzp,'-ok'); ylabel('Eigenvalues','fontsize',9,'fontweight','bold'); saveas(fh,'Eigenvalues_by_between.fig'); case 'Eigenvalues_by_notG' % User selects within component. fh=figure('MenuBar','none','Visible','on', 'HandleVisibility','callback',... 'Toolbar','figure','Name','Eigenvalues from within','NumberTitle','off'); plot([1:length(cdata.Dze)]',cdata.Dze,'-ok'); ylabel('Eigenvalues','fontsize',9,'fontweight','bold'); saveas(fh,'Eigenvalues_by_within.fig'); %-------------------------------------------------------------------------- %************************************************************************** case 'Table_GH' Table=zeros(14,max(cdata.compnum)+2); per100=100; compsum=[]; colheads = strvcat('Source ', 'External '); for compi=1:max(cdata.compnum) colheads = strvcat(colheads,['Comp' num2str(compi) ' ']); end colheads = strvcat(colheads, 'Allcomp'); Table(:,1)=[ cdata.tsum per100... cdata.tsum_b cdata.total_perc_b per100... cdata.tsum_g cdata.total_perc_g per100... cdata.tsum_h cdata.total_perc_h per100... cdata.tsum_e cdata.total_perc_e per100]'; if length(cdata.compnum)==1 for compi=1:cdata.compnum eval(['Table(:,1+compi)=[' 'cdata.component.c' num2str(compi) '_sum '... 'cdata.component.c' num2str(compi) '_perc '... 'cdata.component.c' num2str(compi) '_sum_b '... 'cdata.component.total_c' num2str(compi) '_perc_b '... 'cdata.component.c' num2str(compi) '_perc_b '... 'cdata.component.c' num2str(compi) '_sum_g '... 'cdata.component.total_c' num2str(compi) '_perc_g '... 'cdata.component.c' num2str(compi) '_perc_g '... 'cdata.component.c' num2str(compi) '_sum_h '... 'cdata.component.total_c' num2str(compi) '_perc_h '... 'cdata.component.c' num2str(compi) '_perc_h '... 'cdata.component.c' num2str(compi) '_sum_e ' ... 'cdata.component.total_c' num2str(compi) '_perc_e '... 'cdata.component.c' num2str(compi) '_perc_e];']); end elseif length(cdata.compnum)>1 for compi=1:cdata.compnum(1) eval(['Table(1:2,1+compi)=['... 'cdata.component.c' num2str(compi) '_sum '... 'cdata.component.c' num2str(compi) '_perc ];']); end for compi=1:cdata.compnum(2) eval(['Table(3:5,1+compi)=['... 'cdata.component.c' num2str(compi) '_sum_b '... 'cdata.component.total_c' num2str(compi) '_perc_b '... 'cdata.component.c' num2str(compi) '_perc_b ];']); end for compi=1:cdata.compnum(3) eval(['Table(6:8,1+compi)=['... 'cdata.component.c' num2str(compi) '_sum_g '... 'cdata.component.total_c' num2str(compi) '_perc_g '... 'cdata.component.c' num2str(compi) '_perc_g ];']); end for compi=1:cdata.compnum(4) eval(['Table(9:11,1+compi)=['... 'cdata.component.c' num2str(compi) '_sum_h '... 'cdata.component.total_c' num2str(compi) '_perc_h '... 'cdata.component.c' num2str(compi) '_perc_h ];']); end for compi=1:cdata.compnum(5) eval(['Table(12:14,1+compi)=['... 'cdata.component.c' num2str(compi) '_sum_e '... 'cdata.component.total_c' num2str(compi) '_perc_e '... 'cdata.component.c' num2str(compi) '_perc_e ];']); end end eval(['Table(:,end)=[' 'cdata.comp_sum '... 'cdata.comp_sum_perc '... 'cdata.comp_sum_b '... 'cdata.component.total_comp_perc_b '... 'cdata.comp_sum_perc_b '... 'cdata.comp_sum_g '... 'cdata.component.total_comp_perc_g '... 'cdata.comp_sum_perc_g '... 'cdata.comp_sum_h '... 'cdata.component.total_comp_perc_h '... 'cdata.comp_sum_perc_h '... 'cdata.comp_sum_e '... 'cdata.component.total_comp_perc_e '... 'cdata.comp_sum_perc_e]; ']); rowheads = strvcat('Uncon_SS',' Perc_Uncon',... 'GH_SS',' Perc_uncon_GH',' Perc_con_GH ',... 'G_SS',' Perc_uncon_G',' Perc_con_G ',... 'H_SS',' Perc_uncon_H',' Perc_con_H ',... 'E_SS',' Perc_uncon_E',' Perc_con_E '); atab = num2cell(Table); for i=1:size(atab,1) for j=1:size(atab,2) if (isinf(atab{i,j})) atab{i,j} = []; end atab{i,j} = sprintf('%.2f', atab{i,j}); end end atab = [cellstr(strjust(rowheads, 'left')), atab]; atab = [cellstr(strjust(colheads, 'left'))'; atab]; wtitle = 'Table_GH'; ttitle = 'SS and Percent SS'; digits = ones(1,max(cdata.compnum)+3)*(-1); disptxt = displayform(atab,digits); disptxt = [repmat('-',1,size(disptxt,2));disptxt(1,:); repmat('-',1,size(disptxt,2)); disptxt(2:end,:)] fid = fopen([wtitle '_Run' num2str(cdata.run) '_Comp'... num2str(cdata.compnum),'_Rot' num2str(get(findobj('Tag','rotation'),'value')) '.txt'],'w'); for txti=1:size(disptxt,1) fprintf(fid,'%s',disptxt(txti,:)); fprintf(fid,'\n'); end fclose(fid); commandwindow; case 'GH' % User selects within component. fh = figure('MenuBar','none','Visible','on', 'HandleVisibility','callback',... 'Toolbar','figure','Name','GH_Constrained','NumberTitle','off'); if (length(cdata.compnum)>1 && cdata.compnum(2) >=3) || (length(cdata.compnum)==1 && cdata.compnum >=3) scatter(cdata.Azbr(:,1), cdata.Azbr(:,2)); if cdata.Hlabelflag text(cdata.Azbr(:,1), cdata.Azbr(:,2),cdata.Zlabel,'FontSize',16); [m n]=size(cdata.Azbr); if m<10 g=m; else g=10; end top=[]; bottom=[]; d=g+1; [a b] = size(cdata.Zlabel); start=1; for c=1:n for k=1:d top(k,c)=cdata.Azbr(k,c); topstr(k,start:start+b-1)=cdata.Zlabel(k,:); %topstr2(k,:)=cdata.Zlabel(k,:); %topstr3(k,:)=cdata.Zlabel(k,:); bot(k,c)=cdata.Azbr(k,c); botstr(k,start:start+b-1)=cdata.Zlabel(k,:); %botstr2(k,:)=cdata.Zlabel(k,:); %botstr3(k,:)=cdata.Zlabel(k,:); end start=start+b+1; end topback=topstr; %topback=[a b]; save topback.mat topback; start=1; for c=1:n for k=1:m h=1; %top=topback; while ((cdata.Azbr(k,c)=top(h,c) topp=top; toppstr=topstr; topp(h,c)=cdata.Azbr(k,c); %[c d]=size(topstr(k,:)); toppstr(h,start:start+b-1)=cdata.Zlabel(k,:); while (hg) break; else topp(h,c)=top(f,c); toppstr(h,start:start+b-1)=topstr(f,start:start+b-1); end end toppstr(h,start+b)=' '; top=topp; fintop=top(1:g,1:c); topstr=toppstr; fintopstr=topstr(1:g,:); cdata.top=top; save top.mat top; cdata.fintop=fintop; save fintop.mat fintop; cdata.topstr=topstr; save topstr.mat topstr; cdata.fintopstr=fintopstr; save fintopstr.mat fintopstr; end end end for k=1:m h=1; while ((cdata.Azbr(k,c)>bot(h,c)) && h<=g && hg) break; else bott(h,c)=bot(f,c); bottstr(h,start:start+b-1)=botstr(f,start:start+b-1); end end bottstr(h,start+b)=' '; bot=bott; finbot=bot(1:g,1:c); botstr=bottstr; finbotstr=botstr(1:g,:); cdata.bot=bot; save bot.mat bot; cdata.finbot=finbot; save finbot.mat finbot; cdata.botstr=botstr; save botstr.mat botstr; cdata.finbotstr=finbotstr; save finbotstr.mat finbotstr; end end end start=start+b+1; end Table2=zeros(g,2*n); per100=100; %compsum=[]; colheads=strvcat('Source'); for compi=1:n colheads = strvcat(colheads,['Comp' num2str(compi) ' High'], ['Comp' num2str(compi) 'High Val'], ['Comp' num2str(compi) 'Low' ],['Comp' num2str(compi) 'Low Val' ]); end save colheads.mat colheads; %colheads = strvcat('Source ', 'External '); %for compi=1:max(cdata.compnum) % colheads = strvcat(colheads,['Comp' num2str(compi) ' ']); %end %colheads = strvcat(colheads, 'Allcomp'); %Table2(:,1)=[ cdata.tsum per100... %cdata.tsum_p cdata.total_perc_p per100... %cdata.tsum_e cdata.total_perc_e per100]'; %************************************************ %if length(cdata.compnum)==1 % for compi=1:cdata.compnum % eval(['Table(:,1+compi)=[' 'cdata.component.c' num2str(compi) '_sum %'... % 'cdata.component.c' num2str(compi) '_perc '... % 'cdata.component.c' num2str(compi) '_sum_p '... % 'cdata.component.total_c' num2str(compi) '_perc_p '... % 'cdata.component.c' num2str(compi) '_perc_p '... % 'cdata.component.c' num2str(compi) '_sum_e ' ... % 'cdata.component.total_c' num2str(compi) '_perc_e '... % 'cdata.component.c' num2str(compi) '_perc_e];']); % end % elseif length(cdata.compnum)>1 % for compi=1:cdata.compnum(1) % eval(['Table(1:2,1+compi)=['... % 'cdata.component.c' num2str(compi) '_sum '... % 'cdata.component.c' num2str(compi) '_perc ];']); % end % for compi=1:cdata.compnum(2) % eval(['Table(3:5,1+compi)=['... % 'cdata.component.c' num2str(compi) '_sum_p '... % 'cdata.component.total_c' num2str(compi) '_perc_p '... % 'cdata.component.c' num2str(compi) '_perc_p ];']); % end % for compi=1:cdata.compnum(3) % eval(['Table(6:8,1+compi)=['... % 'cdata.component.c' num2str(compi) '_sum_e '... % 'cdata.component.total_c' num2str(compi) '_perc_e '... % 'cdata.component.c' num2str(compi) '_perc_e ];']); % end % % end % eval(['Table(:,end)=[' 'cdata.comp_sum '... % 'cdata.comp_sum_perc '... % 'cdata.comp_sum_p '... % 'cdata.component.total_comp_perc_p '... % 'cdata.comp_sum_perc_p '... % 'cdata.comp_sum_e '... % 'cdata.component.total_comp_perc_e '... % 'cdata.comp_sum_perc_e]; ']); % %************************************************ rowheads = strvcat('1','2','3','4',... '5','6','7','8','9','10'); %atab = num2cell(fintop); %atab2= num2cell(finbot); t=size(fintop,2); for i=1:size(fintop,1) %p=0; for j=1:size(fintop,2) %if (isinf(atab{i,j})) %atab{i,j} = []; %end %if %atab{i,j} = sprintf('%.2f', atab{i,j}); %end %if j>1 % p=p+3; %end Table2(i, 2*j-1)=fintop(i,j); %p=1; Table2(i, 2*j)=finbot(i,j); end end [q r]=size(fintopstr); save q.mat q; save r.mat r; rowheads1=[]; rowheads2=[]; for i=1:q %i=1; %j=1; s=r/t; u=s; starts=1; for j=1:t %matr(i,j)=mat2cell(fintopstr(i,starts:u)); %matri(i,j)=mat2cell(finbotstr(i,starts:u)); rowheads1=strvcat(rowheads1,[fintopstr(i,starts:u)],[finbotstr(i,starts:u)]); if j==t save rowheads1.mat rowheads1; save j.mat j; end starts=starts+s; u=u+s; if u > r u=r; end end rowheads2=strvcat(rowheads2,rowheads1); end %save matr.mat matr; %save matri.mat matri; %for i=1:size(matr,1) %p=0; %for j=1:size(matr,2) % if j>1 % p=p+3; % end %matrf=cell2mat(matr); %matrif=cell2mat(matri); %save matrf.mat matrf; %save matrif.mat matrif; %Table2(i,j+p)=matr(i,j); %if p==0 % continue; %else %Table2(i,j+p-2)=matri(i,j); %end %end %end atab2=[]; %save atab.mat atab; %save Table2.mat Table2; atab2=[cellstr(strjust(rowheads,'left')),atab2]; abc=cellstr(strjust(rowheads1,'left')); startt=1; for d=1:q cba(d,1:2*t)=abc(startt:startt+2*t-1,1)'; startt=startt+2*t; end save cba.mat cba; save abc.mat abc; save atab2.mat atab2; save Table2.mat Table2; Table22=num2cell(Table2); save rowheads2.mat rowheads2; for b=1:2*n atab2=[atab2,Table22(:,b),cba(:,b)]; end atab2=[cellstr(strjust(colheads,'left'))';atab2]; atab22=atab2; save atab22.mat atab22; %atab2=[cellstr(strjust(colheads,'left'))'; atab]; %rowd=cellstr(strjust(rowheads,'left')); %cold=cellstr(strjust(colheads,'left')); %save rowd.mat rowd; %save cold.mat cold; %atab = [cellstr(strjust(rowheads,'left')), atab]; %atabb=atab; %save atabb.mat atabb; %atab = [cellstr(strjust(colheads,'left'))'; atab]; wtitle = 'Table_Extremes'; ttitle = 'SS and Percent SS'; digits = ones(1,4*n+1)*(-1); disptxt = displayform(atab2,digits); disptxt = [repmat('-',1,size(disptxt,2));disptxt(1,:); repmat('-',1,size(disptxt,2)); disptxt(2:end,:)] fid = fopen([wtitle '_Run' num2str(cdata.run) '_Comp'... num2str(cdata.compnum),'_Rot' num2str(get(findobj('Tag','rotation'),'value')) '.txt'],'w'); for txti=1:size(disptxt,1) fprintf(fid,'%s',disptxt(txti,:)); fprintf(fid,'\n'); end fclose(fid); commandwindow; else text(cdata.Azbr(:,1), cdata.Azbr(:,2),num2str([1:size(cdata.Z,2)]')); end title('Only present the first 3 dimensions','fontsize',16,'fontweight','bold'); xlabel('GH 1','fontsize',16,'fontweight','bold'); ylabel('GH 2','fontsize',16,'fontweight','bold'); %zlabel('GH 3','fontsize',9,'fontweight','bold'); elseif (length(cdata.compnum)>1 && cdata.compnum(2) ==2) || (length(cdata.compnum)==1 && cdata.compnum ==2) scatter(cdata.Azbr(:,1)*-1, cdata.Azbr(:,2)); text(cdata.Azbr(:,1)*-1, cdata.Azbr(:,2),num2str([1:size(cdata.Z,2)]')); xlabel('GH 1','fontsize',9,'fontweight','bold'); ylabel('GH 2','fontsize',9,'fontweight','bold'); elseif (length(cdata.compnum)>1 && cdata.compnum(2) ==1) || (length(cdata.compnum)==1 && cdata.compnum ==1) plot(cdata.Azbr(:,1)*-1,[1:length(cdata.Azbr(:,1))]','o'); text([1:size(cdata.Azbr,1)]',cdata.Azbr(:,1)*-1,num2str([1:size(cdata.Z,2)]')); xlabel('GH 1','fontsize',9,'fontweight','bold'); end legend('Variables',4); legend('boxoff'); saveas(fh,'BothConstrained_loading.fig'); case 'G' % User selects within component. fh = figure('MenuBar','none','Visible','on', 'HandleVisibility','callback',... 'Toolbar','figure','Name','G_Constrained','NumberTitle','off'); if (length(cdata.compnum)>1 && cdata.compnum(3) >=3) || (length(cdata.compnum)==1 && cdata.compnum >=3) scatter(cdata.Azgr(:,1), cdata.Azgr(:,2)); if cdata.Glabelflag text(cdata.Azgr(:,1), cdata.Azgr(:,2),cdata.Zlabel,'FontSize',16); [m n]=size(cdata.Azgr); if m<10 g=m; else g=10; end top=[]; bottom=[]; d=g+1; [a b] = size(cdata.Zlabel); start=1; for c=1:n for k=1:d top(k,c)=cdata.Azgr(k,c); topstr(k,start:start+b-1)=cdata.Zlabel(k,:); %topstr2(k,:)=cdata.Zlabel(k,:); %topstr3(k,:)=cdata.Zlabel(k,:); bot(k,c)=cdata.Azgr(k,c); botstr(k,start:start+b-1)=cdata.Zlabel(k,:); %botstr2(k,:)=cdata.Zlabel(k,:); %botstr3(k,:)=cdata.Zlabel(k,:); end start=start+b+1; end topback=topstr; %topback=[a b]; save topback.mat topback; start=1; for c=1:n for k=1:m h=1; %top=topback; while ((cdata.Azgr(k,c)=top(h,c) topp=top; toppstr=topstr; topp(h,c)=cdata.Azgr(k,c); %[c d]=size(topstr(k,:)); toppstr(h,start:start+b-1)=cdata.Zlabel(k,:); while (hg) break; else topp(h,c)=top(f,c); toppstr(h,start:start+b-1)=topstr(f,start:start+b-1); end end toppstr(h,start+b)=' '; top=topp; fintop=top(1:g,1:c); topstr=toppstr; fintopstr=topstr(1:g,:); cdata.top=top; save top.mat top; cdata.fintop=fintop; save fintop.mat fintop; cdata.topstr=topstr; save topstr.mat topstr; cdata.fintopstr=fintopstr; save fintopstr.mat fintopstr; end end end for k=1:m h=1; while ((cdata.Azgr(k,c)>bot(h,c)) && h<=g && hg) break; else bott(h,c)=bot(f,c); bottstr(h,start:start+b-1)=botstr(f,start:start+b-1); end end bottstr(h,start+b)=' '; bot=bott; finbot=bot(1:g,1:c); botstr=bottstr; finbotstr=botstr(1:g,:); cdata.bot=bot; save bot.mat bot; cdata.finbot=finbot; save finbot.mat finbot; cdata.botstr=botstr; save botstr.mat botstr; cdata.finbotstr=finbotstr; save finbotstr.mat finbotstr; end end end start=start+b+1; end Table2=zeros(g,2*n); per100=100; %compsum=[]; colheads=strvcat('Source'); for compi=1:n colheads = strvcat(colheads,['Comp' num2str(compi) ' High'], ['Comp' num2str(compi) 'High Val'], ['Comp' num2str(compi) 'Low' ],['Comp' num2str(compi) 'Low Val' ]); end save colheads.mat colheads; %colheads = strvcat('Source ', 'External '); %for compi=1:max(cdata.compnum) % colheads = strvcat(colheads,['Comp' num2str(compi) ' ']); %end %colheads = strvcat(colheads, 'Allcomp'); %Table2(:,1)=[ cdata.tsum per100... %cdata.tsum_p cdata.total_perc_p per100... %cdata.tsum_e cdata.total_perc_e per100]'; %************************************************ %if length(cdata.compnum)==1 % for compi=1:cdata.compnum % eval(['Table(:,1+compi)=[' 'cdata.component.c' num2str(compi) '_sum %'... % 'cdata.component.c' num2str(compi) '_perc '... % 'cdata.component.c' num2str(compi) '_sum_p '... % 'cdata.component.total_c' num2str(compi) '_perc_p '... % 'cdata.component.c' num2str(compi) '_perc_p '... % 'cdata.component.c' num2str(compi) '_sum_e ' ... % 'cdata.component.total_c' num2str(compi) '_perc_e '... % 'cdata.component.c' num2str(compi) '_perc_e];']); % end % elseif length(cdata.compnum)>1 % for compi=1:cdata.compnum(1) % eval(['Table(1:2,1+compi)=['... % 'cdata.component.c' num2str(compi) '_sum '... % 'cdata.component.c' num2str(compi) '_perc ];']); % end % for compi=1:cdata.compnum(2) % eval(['Table(3:5,1+compi)=['... % 'cdata.component.c' num2str(compi) '_sum_p '... % 'cdata.component.total_c' num2str(compi) '_perc_p '... % 'cdata.component.c' num2str(compi) '_perc_p ];']); % end % for compi=1:cdata.compnum(3) % eval(['Table(6:8,1+compi)=['... % 'cdata.component.c' num2str(compi) '_sum_e '... % 'cdata.component.total_c' num2str(compi) '_perc_e '... % 'cdata.component.c' num2str(compi) '_perc_e ];']); % end % % end % eval(['Table(:,end)=[' 'cdata.comp_sum '... % 'cdata.comp_sum_perc '... % 'cdata.comp_sum_p '... % 'cdata.component.total_comp_perc_p '... % 'cdata.comp_sum_perc_p '... % 'cdata.comp_sum_e '... % 'cdata.component.total_comp_perc_e '... % 'cdata.comp_sum_perc_e]; ']); % %************************************************ rowheads = strvcat('1','2','3','4',... '5','6','7','8','9','10'); %atab = num2cell(fintop); %atab2= num2cell(finbot); t=size(fintop,2); for i=1:size(fintop,1) %p=0; for j=1:size(fintop,2) %if (isinf(atab{i,j})) %atab{i,j} = []; %end %if %atab{i,j} = sprintf('%.2f', atab{i,j}); %end %if j>1 % p=p+3; %end Table2(i, 2*j-1)=fintop(i,j); %p=1; Table2(i, 2*j)=finbot(i,j); end end [q r]=size(fintopstr); save q.mat q; save r.mat r; rowheads1=[]; rowheads2=[]; for i=1:q %i=1; %j=1; s=r/t; u=s; starts=1; for j=1:t %matr(i,j)=mat2cell(fintopstr(i,starts:u)); %matri(i,j)=mat2cell(finbotstr(i,starts:u)); rowheads1=strvcat(rowheads1,[fintopstr(i,starts:u)],[finbotstr(i,starts:u)]); if j==t save rowheads1.mat rowheads1; save j.mat j; end starts=starts+s; u=u+s; if u > r u=r; end end rowheads2=strvcat(rowheads2,rowheads1); end %save matr.mat matr; %save matri.mat matri; %for i=1:size(matr,1) %p=0; %for j=1:size(matr,2) % if j>1 % p=p+3; % end %matrf=cell2mat(matr); %matrif=cell2mat(matri); %save matrf.mat matrf; %save matrif.mat matrif; %Table2(i,j+p)=matr(i,j); %if p==0 % continue; %else %Table2(i,j+p-2)=matri(i,j); %end %end %end atab2=[]; %save atab.mat atab; %save Table2.mat Table2; atab2=[cellstr(strjust(rowheads,'left')),atab2]; abc=cellstr(strjust(rowheads1,'left')); startt=1; for d=1:q cba(d,1:2*t)=abc(startt:startt+2*t-1,1)'; startt=startt+2*t; end save cba.mat cba; save abc.mat abc; save atab2.mat atab2; save Table2.mat Table2; Table22=num2cell(Table2); save rowheads2.mat rowheads2; for b=1:2*n atab2=[atab2,Table22(:,b),cba(:,b)]; end atab2=[cellstr(strjust(colheads,'left'))';atab2]; atab22=atab2; save atab22.mat atab22; %atab2=[cellstr(strjust(colheads,'left'))'; atab]; %rowd=cellstr(strjust(rowheads,'left')); %cold=cellstr(strjust(colheads,'left')); %save rowd.mat rowd; %save cold.mat cold; %atab = [cellstr(strjust(rowheads,'left')), atab]; %atabb=atab; %save atabb.mat atabb; %atab = [cellstr(strjust(colheads,'left'))'; atab]; wtitle = 'Table_Extremes'; ttitle = 'SS and Percent SS'; digits = ones(1,4*n+1)*(-1); disptxt = displayform(atab2,digits); disptxt = [repmat('-',1,size(disptxt,2));disptxt(1,:); repmat('-',1,size(disptxt,2)); disptxt(2:end,:)] fid = fopen([wtitle '_Run' num2str(cdata.run) '_Comp'... num2str(cdata.compnum),'_Rot' num2str(get(findobj('Tag','rotation'),'value')) '.txt'],'w'); for txti=1:size(disptxt,1) fprintf(fid,'%s',disptxt(txti,:)); fprintf(fid,'\n'); end fclose(fid); commandwindow; else text(cdata.Azgr(:,1), cdata.Azgr(:,2),num2str([1:size(cdata.Z,2)]')); end title('Only present the first 3 dimensions','fontsize',9,'fontweight','bold') xlabel('Constrain\_G 1','fontsize',9,'fontweight','bold'); ylabel('Constrain\_G 2','fontsize',9,'fontweight','bold'); %zlabel('Constrain\_G 3','fontsize',9,'fontweight','bold'); elseif (length(cdata.compnum)>1 && cdata.compnum(3) ==2) || (length(cdata.compnum)==1 && cdata.compnum ==2) scatter(cdata.Azgr(:,1)*-1, cdata.Azgr(:,2)); text(cdata.Azgr(:,1)*-1, cdata.Azgr(:,2),num2str([1:size(cdata.Z,2)]')); xlabel('Constrain\_G 1','fontsize',9,'fontweight','bold'); ylabel('Constrain\_G 2','fontsize',9,'fontweight','bold'); elseif (length(cdata.compnum)>1 && cdata.compnum(3) ==1) || (length(cdata.compnum)==1 && cdata.compnum ==1) plot(cdata.Azgr(:,1)*-1,[1:length(cdata.Azgr(:,1))]','o'); text([1:size(cdata.Azgr,1)]',cdata.Azgr(:,1)*-1,num2str([1:size(cdata.Z,2)]')); xlabel('Constrain\_G 2','fontsize',9,'fontweight','bold'); end legend('Variables',4); legend('boxoff'); saveas(fh,'GConstrained_loading.fig'); case 'H' % User selects within component. fh = figure('MenuBar','none','Visible','on', 'HandleVisibility','callback',... 'Toolbar','figure','Name','H_Constrained','NumberTitle','off'); if (length(cdata.compnum)>1 && cdata.compnum(4) >=3) || (length(cdata.compnum)==1 && cdata.compnum >=3) scatter(cdata.Azhr(:,1), cdata.Azhr(:,2)); if cdata.Hlabelflag text(cdata.Azhr(:,1), cdata.Azhr(:,2),cdata.Hlabel,'FontSize',16); [m n]=size(cdata.Azhr); if m<10 g=m; else g=10; end top=[]; bottom=[]; d=g+1; [a b] = size(cdata.Zlabel); start=1; for c=1:n for k=1:d top(k,c)=cdata.Azhr(k,c); topstr(k,start:start+b-1)=cdata.Zlabel(k,:); %topstr2(k,:)=cdata.Zlabel(k,:); %topstr3(k,:)=cdata.Zlabel(k,:); bot(k,c)=cdata.Azhr(k,c); botstr(k,start:start+b-1)=cdata.Zlabel(k,:); %botstr2(k,:)=cdata.Zlabel(k,:); %botstr3(k,:)=cdata.Zlabel(k,:); end start=start+b+1; end topback=topstr; %topback=[a b]; save topback.mat topback; start=1; for c=1:n for k=1:m h=1; %top=topback; while ((cdata.Azhr(k,c)=top(h,c) topp=top; toppstr=topstr; topp(h,c)=cdata.Azhr(k,c); %[c d]=size(topstr(k,:)); toppstr(h,start:start+b-1)=cdata.Zlabel(k,:); while (hg) break; else topp(h,c)=top(f,c); toppstr(h,start:start+b-1)=topstr(f,start:start+b-1); end end toppstr(h,start+b)=' '; top=topp; fintop=top(1:g,1:c); topstr=toppstr; fintopstr=topstr(1:g,:); cdata.top=top; save top.mat top; cdata.fintop=fintop; save fintop.mat fintop; cdata.topstr=topstr; save topstr.mat topstr; cdata.fintopstr=fintopstr; save fintopstr.mat fintopstr; end end end for k=1:m h=1; while ((cdata.Azhr(k,c)>bot(h,c)) && h<=g && hg) break; else bott(h,c)=bot(f,c); bottstr(h,start:start+b-1)=botstr(f,start:start+b-1); end end bottstr(h,start+b)=' '; bot=bott; finbot=bot(1:g,1:c); botstr=bottstr; finbotstr=botstr(1:g,:); cdata.bot=bot; save bot.mat bot; cdata.finbot=finbot; save finbot.mat finbot; cdata.botstr=botstr; save botstr.mat botstr; cdata.finbotstr=finbotstr; save finbotstr.mat finbotstr; end end end start=start+b+1; end Table2=zeros(g,2*n); per100=100; %compsum=[]; colheads=strvcat('Source'); for compi=1:n colheads = strvcat(colheads,['Comp' num2str(compi) ' High'], ['Comp' num2str(compi) 'High Val'], ['Comp' num2str(compi) 'Low' ],['Comp' num2str(compi) 'Low Val' ]); end save colheads.mat colheads; %colheads = strvcat('Source ', 'External '); %for compi=1:max(cdata.compnum) % colheads = strvcat(colheads,['Comp' num2str(compi) ' ']); %end %colheads = strvcat(colheads, 'Allcomp'); %Table2(:,1)=[ cdata.tsum per100... %cdata.tsum_p cdata.total_perc_p per100... %cdata.tsum_e cdata.total_perc_e per100]'; %************************************************ %if length(cdata.compnum)==1 % for compi=1:cdata.compnum % eval(['Table(:,1+compi)=[' 'cdata.component.c' num2str(compi) '_sum %'... % 'cdata.component.c' num2str(compi) '_perc '... % 'cdata.component.c' num2str(compi) '_sum_p '... % 'cdata.component.total_c' num2str(compi) '_perc_p '... % 'cdata.component.c' num2str(compi) '_perc_p '... % 'cdata.component.c' num2str(compi) '_sum_e ' ... % 'cdata.component.total_c' num2str(compi) '_perc_e '... % 'cdata.component.c' num2str(compi) '_perc_e];']); % end % elseif length(cdata.compnum)>1 % for compi=1:cdata.compnum(1) % eval(['Table(1:2,1+compi)=['... % 'cdata.component.c' num2str(compi) '_sum '... % 'cdata.component.c' num2str(compi) '_perc ];']); % end % for compi=1:cdata.compnum(2) % eval(['Table(3:5,1+compi)=['... % 'cdata.component.c' num2str(compi) '_sum_p '... % 'cdata.component.total_c' num2str(compi) '_perc_p '... % 'cdata.component.c' num2str(compi) '_perc_p ];']); % end % for compi=1:cdata.compnum(3) % eval(['Table(6:8,1+compi)=['... % 'cdata.component.c' num2str(compi) '_sum_e '... % 'cdata.component.total_c' num2str(compi) '_perc_e '... % 'cdata.component.c' num2str(compi) '_perc_e ];']); % end % % end % eval(['Table(:,end)=[' 'cdata.comp_sum '... % 'cdata.comp_sum_perc '... % 'cdata.comp_sum_p '... % 'cdata.component.total_comp_perc_p '... % 'cdata.comp_sum_perc_p '... % 'cdata.comp_sum_e '... % 'cdata.component.total_comp_perc_e '... % 'cdata.comp_sum_perc_e]; ']); % %************************************************ rowheads = strvcat('1','2','3','4',... '5','6','7','8','9','10'); %atab = num2cell(fintop); %atab2= num2cell(finbot); t=size(fintop,2); for i=1:size(fintop,1) %p=0; for j=1:size(fintop,2) %if (isinf(atab{i,j})) %atab{i,j} = []; %end %if %atab{i,j} = sprintf('%.2f', atab{i,j}); %end %if j>1 % p=p+3; %end Table2(i, 2*j-1)=fintop(i,j); %p=1; Table2(i, 2*j)=finbot(i,j); end end [q r]=size(fintopstr); save q.mat q; save r.mat r; rowheads1=[]; rowheads2=[]; for i=1:q %i=1; %j=1; s=r/t; u=s; starts=1; for j=1:t %matr(i,j)=mat2cell(fintopstr(i,starts:u)); %matri(i,j)=mat2cell(finbotstr(i,starts:u)); rowheads1=strvcat(rowheads1,[fintopstr(i,starts:u)],[finbotstr(i,starts:u)]); if j==t save rowheads1.mat rowheads1; save j.mat j; end starts=starts+s; u=u+s; if u > r u=r; end end rowheads2=strvcat(rowheads2,rowheads1); end %save matr.mat matr; %save matri.mat matri; %for i=1:size(matr,1) %p=0; %for j=1:size(matr,2) % if j>1 % p=p+3; % end %matrf=cell2mat(matr); %matrif=cell2mat(matri); %save matrf.mat matrf; %save matrif.mat matrif; %Table2(i,j+p)=matr(i,j); %if p==0 % continue; %else %Table2(i,j+p-2)=matri(i,j); %end %end %end atab2=[]; %save atab.mat atab; %save Table2.mat Table2; atab2=[cellstr(strjust(rowheads,'left')),atab2]; abc=cellstr(strjust(rowheads1,'left')); startt=1; for d=1:q cba(d,1:2*t)=abc(startt:startt+2*t-1,1)'; startt=startt+2*t; end save cba.mat cba; save abc.mat abc; save atab2.mat atab2; save Table2.mat Table2; Table22=num2cell(Table2); save rowheads2.mat rowheads2; for b=1:2*n atab2=[atab2,Table22(:,b),cba(:,b)]; end atab2=[cellstr(strjust(colheads,'left'))';atab2]; atab22=atab2; save atab22.mat atab22; %atab2=[cellstr(strjust(colheads,'left'))'; atab]; %rowd=cellstr(strjust(rowheads,'left')); %cold=cellstr(strjust(colheads,'left')); %save rowd.mat rowd; %save cold.mat cold; %atab = [cellstr(strjust(rowheads,'left')), atab]; %atabb=atab; %save atabb.mat atabb; %atab = [cellstr(strjust(colheads,'left'))'; atab]; wtitle = 'Table_Extremes'; ttitle = 'SS and Percent SS'; digits = ones(1,4*n+1)*(-1); disptxt = displayform(atab2,digits); disptxt = [repmat('-',1,size(disptxt,2));disptxt(1,:); repmat('-',1,size(disptxt,2)); disptxt(2:end,:)] fid = fopen([wtitle '_Run' num2str(cdata.run) '_Comp'... num2str(cdata.compnum),'_Rot' num2str(get(findobj('Tag','rotation'),'value')) '.txt'],'w'); for txti=1:size(disptxt,1) fprintf(fid,'%s',disptxt(txti,:)); fprintf(fid,'\n'); end fclose(fid); commandwindow; else text(cdata.Azhr(:,1), cdata.Azhr(:,2),num2str([1:size(cdata.Z,2)]')); end title('Only present the first 3 dimensions','fontsize',9,'fontweight','bold'); xlabel('Constrain\_H 1','fontsize',9,'fontweight','bold'); ylabel('Constrain\_H 2','fontsize',9,'fontweight','bold'); % zlabel('Constrain\_H 3','fontsize',9,'fontweight','bold'); elseif (length(cdata.compnum)>1 && cdata.compnum(4) ==2) || (length(cdata.compnum)==1 && cdata.compnum >=3) scatter(cdata.Azhr(:,1)*-1, cdata.Azhr(:,2)); text(cdata.Azhr(:,1)*-1, cdata.Azhr(:,2),num2str([1:size(cdata.Z,2)]')); xlabel('Constrain\_H 1','fontsize',9,'fontweight','bold'); ylabel('Constrain\_H 2','fontsize',9,'fontweight','bold'); elseif (length(cdata.compnum)>1 && cdata.compnum(4) >=3) || (length(cdata.compnum)==1 && cdata.compnum >=3) plot(cdata.Azhr(:,1)*-1,[1:length(cdata.Azhr(:,1))]','o'); text([1:size(cdata.Azhr,1)]',cdata.Azhr(:,1)*-1,num2str([1:size(cdata.Z,2)]')); xlabel('Constrain\_H 1','fontsize',9,'fontweight','bold'); end legend('Variables',4); legend('boxoff'); saveas(fh,'HConstrained_loading.fig'); case 'E' % User selects within component. fh = figure('MenuBar','none','Visible','on', 'HandleVisibility','callback',... 'Toolbar','figure','Name','Residual_E','NumberTitle','off'); if (length(cdata.compnum)>1 && cdata.compnum(5) >=3) || (length(cdata.compnum)==1 && cdata.compnum >=3) scatter(cdata.Azer(:,1), cdata.Azer(:,2)); text(cdata.Azer(:,1), cdata.Azer(:,2),num2str([1:size(cdata.Z,2)]')); title('Only present the first 3 dimensions','fontsize',9,'fontweight','bold'); xlabel('Residual\_E 1','fontsize',9,'fontweight','bold'); ylabel('Residual\_E 2','fontsize',9,'fontweight','bold'); %zlabel('Residual\_E 3','fontsize',9,'fontweight','bold'); elseif (length(cdata.compnum)>1 && cdata.compnum(5) ==2) || (length(cdata.compnum)==1 && cdata.compnum ==2) scatter(cdata.Azer(:,1)*-1, cdata.Azer(:,2)); text(cdata.Azer(:,1)*-1, cdata.Azer(:,2),num2str([1:size(cdata.Z,2)]')); xlabel('Residual\_E 1','fontsize',9,'fontweight','bold'); ylabel('Residual\_E 2','fontsize',9,'fontweight','bold'); elseif (length(cdata.compnum)>1 && cdata.compnum(5) ==1) || (length(cdata.compnum)==1 && cdata.compnum ==1) plot(cdata.Azer(:,1)*-1,[1:length(cdata.Azer(:,1))]','o'); text([1:size(cdata.Azer,1)]',cdata.Azer(:,1)*-1,num2str([1:size(cdata.Z,2)]')); xlabel('Residual\_E 1','fontsize',9,'fontweight','bold'); end legend('Variables',4); legend('boxoff'); saveas(fh,'Residual_E.fig'); case 'Eigenvalues_by_GH' % User selects within component. fh=figure('MenuBar','none','Visible','on', 'HandleVisibility','callback',... 'Toolbar','figure','Name','Eigenvalues from GH','NumberTitle','off'); plot([1:length(cdata.Dzb)]',cdata.Dzb,'-ok'); ylabel('Eigenvalues','fontsize',9,'fontweight','bold'); saveas(fh,'Eigenvalues_by_GH.fig'); case 'Eigenvalues_by_H' % User selects within component. fh=figure('MenuBar','none','Visible','on', 'HandleVisibility','callback',... 'Toolbar','figure','Name','Eigenvalues from H','NumberTitle','off'); plot([1:length(cdata.Dzh)]',cdata.Dzh,'-ok'); ylabel('Eigenvalues','fontsize',9,'fontweight','bold'); saveas(fh,'Eigenvalues_by_H.fig'); case 'Eigenvalues_by_GH_G' % User selects within component. fh=figure('MenuBar','none','Visible','on', 'HandleVisibility','callback',... 'Toolbar','figure','Name','Eigenvalues from G','NumberTitle','off'); plot([1:length(cdata.Dzg)]',cdata.Dzg,'-ok'); ylabel('Eigenvalues','fontsize',9,'fontweight','bold'); saveas(fh,'Eigenvalues_by_G.fig'); case 'Eigenvalues_by_E' % User selects within component. fh=figure('MenuBar','none','Visible','on', 'HandleVisibility','callback',... 'Toolbar','figure','Name','Eigenvalues from E','NumberTitle','off'); plot([1:length(cdata.Dze)]',cdata.Dze,'-ok'); ylabel('Eigenvalues','fontsize',9,'fontweight','bold'); saveas(fh,'Eigenvalues_by_E.fig'); %------------------------------------------------------------------ %****************************************************************** case 'Table_GA' Table=zeros(11,max(cdata.compnum)+2); per100=100; compsum=[]; colheads = strvcat('Source ', 'External '); for compi=1:max(cdata.compnum) colheads = strvcat(colheads,['Comp' num2str(compi) ' ']); end colheads = strvcat(colheads, 'Allcomp'); Table(:,1)=[ cdata.tsum per100... cdata.tsum_ga cdata.total_perc_ga per100... cdata.tsum_e2 cdata.total_perc_e2 per100... cdata.tsum_e1 cdata.total_perc_e1 per100]'; if length(cdata.compnum)==1 for compi=1:cdata.compnum eval(['Table(:,1+compi)=[' 'cdata.component.c' num2str(compi) '_sum '... 'cdata.component.c' num2str(compi) '_perc '... 'cdata.component.c' num2str(compi) '_sum_ga '... 'cdata.component.total_c' num2str(compi) '_perc_ga '... 'cdata.component.c' num2str(compi) '_perc_ga '... 'cdata.component.c' num2str(compi) '_sum_e2 '... 'cdata.component.total_c' num2str(compi) '_perc_e2 '... 'cdata.component.c' num2str(compi) '_perc_e2 '... 'cdata.component.c' num2str(compi) '_sum_e1 ' ... 'cdata.component.total_c' num2str(compi) '_perc_e1 '... 'cdata.component.c' num2str(compi) '_perc_e1];']); end elseif length(cdata.compnum)>1 for compi=1:cdata.compnum(1) eval(['Table(1:2,1+compi)=['... 'cdata.component.c' num2str(compi) '_sum '... 'cdata.component.c' num2str(compi) '_perc ];']); end for compi=1:cdata.compnum(2) eval(['Table(3:5,1+compi)=['... 'cdata.component.c' num2str(compi) '_sum_ga '... 'cdata.component.total_c' num2str(compi) '_perc_ga '... 'cdata.component.c' num2str(compi) '_perc_ga ];']); end for compi=1:cdata.compnum(3) eval(['Table(6:8,1+compi)=['... 'cdata.component.c' num2str(compi) '_sum_e2 '... 'cdata.component.total_c' num2str(compi) '_perc_e2 '... 'cdata.component.c' num2str(compi) '_perc_e2 ];']); end for compi=1:cdata.compnum(4) eval(['Table(9:11,1+compi)=['... 'cdata.component.c' num2str(compi) '_sum_e1 '... 'cdata.component.total_c' num2str(compi) '_perc_e1 '... 'cdata.component.c' num2str(compi) '_perc_e1 ];']); end end eval(['Table(:,end)=[' 'cdata.comp_sum '... 'cdata.comp_sum_perc '... 'cdata.comp_sum_ga '... 'cdata.component.total_comp_perc_ga '... 'cdata.comp_sum_perc_ga '... 'cdata.comp_sum_e2 '... 'cdata.component.total_comp_perc_e2 '... 'cdata.comp_sum_perc_e2 '... 'cdata.comp_sum_e1 '... 'cdata.component.total_comp_perc_e1 '... 'cdata.comp_sum_perc_e1]; ']); rowheads = strvcat('Uncon_SS',' Perc_Uncon',... 'GA_SS',' Perc_uncon_GA',' Perc_con_GA ',... 'E2_SS',' Perc_uncon_E2',' Perc_con_E2 ',... 'E1_SS',' Perc_uncon_E1',' Perc_con_E1 '); atab = num2cell(Table); for i=1:size(atab,1) for j=1:size(atab,2) if (isinf(atab{i,j})) atab{i,j} = []; end atab{i,j} = sprintf('%.2f', atab{i,j}); end end atab = [cellstr(strjust(rowheads, 'left')), atab]; atab = [cellstr(strjust(colheads, 'left'))'; atab]; wtitle = 'Table_GA'; ttitle = 'SS and Percent SS'; digits = ones(1,max(cdata.compnum)+3)*(-1); disptxt = displayform(atab,digits); disptxt = [repmat('-',1,size(disptxt,2));disptxt(1,:); repmat('-',1,size(disptxt,2)); disptxt(2:end,:)] fid = fopen([wtitle '_Run' num2str(cdata.run) '_Comp'... num2str(cdata.compnum),'_Rot' num2str(get(findobj('Tag','rotation'),'value')) '.txt'],'w'); for txti=1:size(disptxt,1) fprintf(fid,'%s',disptxt(txti,:)); fprintf(fid,'\n'); end fclose(fid); commandwindow; case 'GA' % User selects within component. fh = figure('MenuBar','none','Visible','on', 'HandleVisibility','callback',... 'Toolbar','figure','Name','GA_Constrained','NumberTitle','off'); if (length(cdata.compnum)>1 && cdata.compnum(2) >=3) || (length(cdata.compnum)==1 && cdata.compnum ==2) stem3(cdata.Azgar(:,1)*-1, cdata.Azgar(:,2),cdata.Azgar(:,3)); text(cdata.Azgar(:,1)*-1, cdata.Azgar(:,2),cdata.Azgar(:,3),num2str([1:size(cdata.Z,2)]')); title('Only present the first 3 dimensions','fontsize',9,'fontweight','bold'); xlabel('GA\_Constrain 1','fontsize',9,'fontweight','bold'); ylabel('GA\_Constrain 2','fontsize',9,'fontweight','bold'); zlabel('GA\_Constrain 3','fontsize',9,'fontweight','bold'); elseif (length(cdata.compnum)>1 && cdata.compnum(2) ==2) || (length(cdata.compnum)==1 && cdata.compnum ==2) scatter(cdata.Azgar(:,1)*-1, cdata.Azgar(:,2)); text(cdata.Azgar(:,1)*-1, cdata.Azgar(:,2),num2str([1:size(cdata.Z,2)]')); xlabel('GA\_Constrain 1','fontsize',9,'fontweight','bold'); ylabel('GA\_Constrain 2','fontsize',9,'fontweight','bold'); elseif (length(cdata.compnum)>1 && cdata.compnum(2) ==1) || (length(cdata.compnum)==1 && cdata.compnum ==1) plot(cdata.Azgar(:,1)*-1,[1:length(cdata.Azgar(:,1))]','o'); text([1:size(cdata.Azgar,1)]',cdata.Azgar(:,1)*-1,num2str([1:size(cdata.Z,2)]')); xlabel('GA\_Constrain 1','fontsize',9,'fontweight','bold'); end legend('Variables',4); legend('boxoff'); saveas(fh,'GA_Constrained.fig'); case 'E2' % User selects within component. fh = figure('MenuBar','none','Visible','on', 'HandleVisibility','callback',... 'Toolbar','figure','Name','Residual_E2','NumberTitle','off'); if (length(cdata.compnum)>1 && cdata.compnum(3) >=3) || (length(cdata.compnum)==1 && cdata.compnum >=3) stem3(cdata.Aze2r(:,1)*-1, cdata.Aze2r(:,2),cdata.Aze2r(:,3)); text(cdata.Aze2r(:,1)*-1, cdata.Aze2r(:,2),cdata.Aze2r(:,3),num2str([1:size(cdata.Z,2)]')); title('Only present the first 3 dimensions','fontsize',9,'fontweight','bold'); xlabel('Residual\_E2 1','fontsize',9,'fontweight','bold'); ylabel('Residual\_E2 2','fontsize',9,'fontweight','bold'); zlabel('Residual\_E2 3','fontsize',9,'fontweight','bold'); elseif (length(cdata.compnum)>1 && cdata.compnum(3) ==2) || (length(cdata.compnum)==1 && cdata.compnum ==2) scatter(cdata.Aze2r(:,1)*-1, cdata.Aze2r(:,2)); text(cdata.Aze2r(:,1)*-1, cdata.Aze2r(:,2),num2str([1:size(cdata.Z,2)]')); xlabel('Residual\_E2 1','fontsize',9,'fontweight','bold'); ylabel('Residual\_E2 2','fontsize',9,'fontweight','bold'); elseif (length(cdata.compnum)>1 && cdata.compnum(3) ==1) || (length(cdata.compnum)==1 && cdata.compnum ==1) plot(cdata.Aze2r(:,1)*-1,[1:length(cdata.Aze2r(:,1))]','o'); text([1:size(cdata.Aze2r,1)]',cdata.Aze2r(:,1)*-1,num2str([1:size(cdata.Z,2)]')); xlabel('Residual\_E2 1','fontsize',9,'fontweight','bold'); end legend('Variables',4); legend('boxoff'); saveas(fh,'Residual_E2.fig'); case 'E1' % User selects within component. fh = figure('MenuBar','none','Visible','on', 'HandleVisibility','callback',... 'Toolbar','figure','Name','Residual_E1','NumberTitle','off'); if (length(cdata.compnum)>1 && cdata.compnum(4) >=3) || (length(cdata.compnum)==1 && cdata.compnum >=3) stem3(cdata.Aze1r(:,1)*-1, cdata.Aze1r(:,2),cdata.Aze1r(:,3)); text(cdata.Aze1r(:,1)*-1, cdata.Aze1r(:,2),cdata.Aze1r(:,3),num2str([1:size(cdata.Z,2)]')); if (length(cdata.compnum)>1 && cdata.compnum(4) >=3) || (length(cdata.compnum)==1 && cdata.compnum >=3) title('Only present the first 3 dimensions','fontsize',9,'fontweight','bold'); end xlabel('Residual\_E1 1','fontsize',9,'fontweight','bold'); ylabel('Residual\_E1 2','fontsize',9,'fontweight','bold'); zlabel('Residual\_E1 3','fontsize',9,'fontweight','bold'); elseif (length(cdata.compnum)>1 && cdata.compnum(4) ==2) || (length(cdata.compnum)==1 && cdata.compnum ==2) scatter(cdata.Aze1r(:,1)*-1, cdata.Aze1r(:,2)); text(cdata.Aze1r(:,1)*-1, cdata.Aze1r(:,2),num2str([1:size(cdata.Z,2)]')); xlabel('Residual\_E1 1','fontsize',9,'fontweight','bold'); ylabel('Residual\_E1 2','fontsize',9,'fontweight','bold'); elseif (length(cdata.compnum)>1 && cdata.compnum(4) ==1) || (length(cdata.compnum)==1 && cdata.compnum ==1) plot(cdata.Aze1r(:,1)*-1,[1:length(cdata.Aze1r(:,1))]','o'); text([1:size(cdata.Aze1r,1)]',cdata.Aze1r(:,1)*-1,num2str([1:size(cdata.Z,2)]')); ylabel('Residual\_E1 1','fontsize',9,'fontweight','bold'); end legend('Variables',4); legend('boxoff'); saveas(fh,'Residual_E1.fig'); case 'Eigenvalues_by_GA' % User selects within component. fh=figure('MenuBar','none','Visible','on', 'HandleVisibility','callback',... 'Toolbar','figure','Name','Eigenvalues from GA','NumberTitle','off'); plot([1:length(cdata.Dzga)]',cdata.Dzga,'-ok'); ylabel('Eigenvalues','fontsize',9,'fontweight','bold'); saveas(fh,'Eigenvalues_by_GA.fig'); case 'Eigenvalues_by_E2' % User selects within component. fh=figure('MenuBar','none','Visible','on', 'HandleVisibility','callback',... 'Toolbar','figure','Name','Eigenvalues from E2','NumberTitle','off'); plot([1:length(cdata.Dze2)]',cdata.Dze2,'-ok'); ylabel('Eigenvalues','fontsize',9,'fontweight','bold'); saveas(fh,'Eigenvalues_by_E2.fig'); case 'Eigenvalues_by_E1' % User selects within component. fh=figure('MenuBar','none','Visible','on', 'HandleVisibility','callback',... 'Toolbar','figure','Name','Eigenvalues from E1','NumberTitle','off'); plot([1:length(cdata.Dze1)]',cdata.Dze1,'-ok'); ylabel('Eigenvalues','fontsize',9,'fontweight','bold'); saveas(fh,'Eigenvalues_by_E1.fig'); %------------------------------------------------------------------ %****************************************************************** case 'Table_H' Table=zeros(8,cdata.compnum+2); per100=100; compsum=[]; colheads = strvcat('Source ', 'External '); for compi=1:max(cdata.compnum) colheads = strvcat(colheads,['Comp' num2str(compi) ' ']); end colheads = strvcat(colheads, 'Allcomp'); Table(:,1)=[ cdata.tsum per100... cdata.tsum_p cdata.total_perc_p per100... cdata.tsum_e cdata.total_perc_e per100]'; if length(cdata.compnum)==1 for compi=1:cdata.compnum eval(['Table(:,1+compi)=[' 'cdata.component.c' num2str(compi) '_sum '... 'cdata.component.c' num2str(compi) '_perc '... 'cdata.component.c' num2str(compi) '_sum_p '... 'cdata.component.total_c' num2str(compi) '_perc_p '... 'cdata.component.c' num2str(compi) '_perc_p '... 'cdata.component.c' num2str(compi) '_sum_e ' ... 'cdata.component.total_c' num2str(compi) '_perc_e '... 'cdata.component.c' num2str(compi) '_perc_e];']); end elseif length(cdata.compnum)>1 for compi=1:cdata.compnum(1) eval(['Table(1:2,1+compi)=['... 'cdata.component.c' num2str(compi) '_sum '... 'cdata.component.c' num2str(compi) '_perc ];']); end for compi=1:cdata.compnum(2) eval(['Table(3:5,1+compi)=['... 'cdata.component.c' num2str(compi) '_sum_p '... 'cdata.component.total_c' num2str(compi) '_perc_p '... 'cdata.component.c' num2str(compi) '_perc_p ];']); end for compi=1:cdata.compnum(3) eval(['Table(6:8,1+compi)=['... 'cdata.component.c' num2str(compi) '_sum_e '... 'cdata.component.total_c' num2str(compi) '_perc_e '... 'cdata.component.c' num2str(compi) '_perc_e ];']); end end eval(['Table(:,end)=[' 'cdata.comp_sum '... 'cdata.comp_sum_perc '... 'cdata.comp_sum_p '... 'cdata.component.total_comp_perc_p '... 'cdata.comp_sum_perc_p '... 'cdata.comp_sum_e '... 'cdata.component.total_comp_perc_e '... 'cdata.comp_sum_perc_e]; ']); rowheads = strvcat('Total_SS',' Perc_total','SS_Acc_H',' Perc_total',... ' Perc_Acc_H ','SS_Not_H ', ' Perc_total',' Perc_Not_H'); atab = num2cell(Table); for i=1:size(atab,1) for j=1:size(atab,2) if (isinf(atab{i,j})) atab{i,j} = []; end atab{i,j} = sprintf('%.2f', atab{i,j}); end end atab = [cellstr(strjust(rowheads, 'left')), atab]; atab = [cellstr(strjust(colheads, 'left'))'; atab]; wtitle = 'Table_H'; ttitle = 'SS and Percent SS'; digits = ones(1,max(cdata.compnum)+3)*(-1); disptxt = displayform(atab,digits); disptxt = [repmat('-',1,size(disptxt,2));disptxt(1,:); repmat('-',1,size(disptxt,2)); disptxt(2:end,:)] fid = fopen([wtitle '_Run' num2str(cdata.run) '_Comp'... num2str(cdata.compnum), '_Rot' num2str(get(findobj('Tag','rotation'),'value')) '.txt'],'w'); for txti=1:size(disptxt,1) fprintf(fid,'%s',disptxt(txti,:)); fprintf(fid,'\n'); end fclose(fid); commandwindow; case 'OnlyH' % User selects between component. fh = figure('MenuBar','none','Visible','on', 'HandleVisibility','callback',... 'Toolbar','figure','Name','Between component loading','NumberTitle','off'); if (length(cdata.compnum)>1 && cdata.compnum(2) >=3) || (length(cdata.compnum)==1 && cdata.compnum >=3) scatter(cdata.Azpr(:,1), cdata.Azpr(:,2),'b'); if cdata.Hlabelflag text(cdata.Azpr(:,1), cdata.Azpr(:,2),cdata.Hlabel,'FontSize',16); [m n]=size(cdata.Azpr); if m<10 g=m; else g=10; end top=[]; bottom=[]; d=g+1; [a b] = size(cdata.Zlabel); start=1; for c=1:n for k=1:d top(k,c)=cdata.Azpr(k,c); topstr(k,start:start+b-1)=cdata.Zlabel(k,:); %topstr2(k,:)=cdata.Zlabel(k,:); %topstr3(k,:)=cdata.Zlabel(k,:); bot(k,c)=cdata.Azpr(k,c); botstr(k,start:start+b-1)=cdata.Zlabel(k,:); %botstr2(k,:)=cdata.Zlabel(k,:); %botstr3(k,:)=cdata.Zlabel(k,:); end start=start+b+1; end topback=topstr; %topback=[a b]; save topback.mat topback; start=1; for c=1:n for k=1:m h=1; %top=topback; while ((cdata.Azpr(k,c)top(h,c) topp=top; toppstr=topstr; topp(h,c)=cdata.Azpr(k,c); %[c d]=size(topstr(k,:)); toppstr(h,start:start+b-1)=cdata.Zlabel(k,:); while (hg) break; else topp(h,c)=top(f,c); toppstr(h,start:start+b-1)=topstr(f,start:start+b-1); end end toppstr(h,start+b)=' '; top=topp; fintop=top(1:g,1:c); topstr=toppstr; fintopstr=topstr(1:g,:); cdata.top=top; save top.mat top; cdata.fintop=fintop; save fintop.mat fintop; cdata.topstr=topstr; save topstr.mat topstr; cdata.fintopstr=fintopstr; save fintopstr.mat fintopstr; end end end for k=1:m h=1; while ((cdata.Azpr(k,c)>bot(h,c)) && h<=g && hg) break; else bott(h,c)=bot(f,c); bottstr(h,start:start+b-1)=botstr(f,start:start+b-1); end end bottstr(h,start+b)=' '; bot=bott; finbot=bot(1:g,1:c); botstr=bottstr; finbotstr=botstr(1:g,:); cdata.bot=bot; save bot.mat bot; cdata.finbot=finbot; save finbot.mat finbot; cdata.botstr=botstr; save botstr.mat botstr; cdata.finbotstr=finbotstr; save finbotstr.mat finbotstr; end end end start=start+b+1; end Table2=zeros(g,2*n); per100=100; %compsum=[]; colheads=strvcat('Source'); for compi=1:n colheads = strvcat(colheads,['Comp' num2str(compi) ' High'], ['Comp' num2str(compi) 'High Val'], ['Comp' num2str(compi) 'Low' ],['Comp' num2str(compi) 'Low Val' ]); end save colheads.mat colheads; %colheads = strvcat('Source ', 'External '); %for compi=1:max(cdata.compnum) % colheads = strvcat(colheads,['Comp' num2str(compi) ' ']); %end %colheads = strvcat(colheads, 'Allcomp'); %Table2(:,1)=[ cdata.tsum per100... %cdata.tsum_p cdata.total_perc_p per100... %cdata.tsum_e cdata.total_perc_e per100]'; %************************************************ %if length(cdata.compnum)==1 % for compi=1:cdata.compnum % eval(['Table(:,1+compi)=[' 'cdata.component.c' num2str(compi) '_sum %'... % 'cdata.component.c' num2str(compi) '_perc '... % 'cdata.component.c' num2str(compi) '_sum_p '... % 'cdata.component.total_c' num2str(compi) '_perc_p '... % 'cdata.component.c' num2str(compi) '_perc_p '... % 'cdata.component.c' num2str(compi) '_sum_e ' ... % 'cdata.component.total_c' num2str(compi) '_perc_e '... % 'cdata.component.c' num2str(compi) '_perc_e];']); % end % elseif length(cdata.compnum)>1 % for compi=1:cdata.compnum(1) % eval(['Table(1:2,1+compi)=['... % 'cdata.component.c' num2str(compi) '_sum '... % 'cdata.component.c' num2str(compi) '_perc ];']); % end % for compi=1:cdata.compnum(2) % eval(['Table(3:5,1+compi)=['... % 'cdata.component.c' num2str(compi) '_sum_p '... % 'cdata.component.total_c' num2str(compi) '_perc_p '... % 'cdata.component.c' num2str(compi) '_perc_p ];']); % end % for compi=1:cdata.compnum(3) % eval(['Table(6:8,1+compi)=['... % 'cdata.component.c' num2str(compi) '_sum_e '... % 'cdata.component.total_c' num2str(compi) '_perc_e '... % 'cdata.component.c' num2str(compi) '_perc_e ];']); % end % % end % eval(['Table(:,end)=[' 'cdata.comp_sum '... % 'cdata.comp_sum_perc '... % 'cdata.comp_sum_p '... % 'cdata.component.total_comp_perc_p '... % 'cdata.comp_sum_perc_p '... % 'cdata.comp_sum_e '... % 'cdata.component.total_comp_perc_e '... % 'cdata.comp_sum_perc_e]; ']); % %************************************************ rowheads = strvcat('1','2','3','4',... '5','6','7','8','9','10'); %atab = num2cell(fintop); %atab2= num2cell(finbot); t=size(fintop,2); for i=1:size(fintop,1) %p=0; for j=1:size(fintop,2) %if (isinf(atab{i,j})) %atab{i,j} = []; %end %if %atab{i,j} = sprintf('%.2f', atab{i,j}); %end %if j>1 % p=p+3; %end Table2(i, 2*j-1)=fintop(i,j); %p=1; Table2(i, 2*j)=finbot(i,j); end end [q r]=size(fintopstr); save q.mat q; save r.mat r; rowheads1=[]; rowheads2=[]; for i=1:q %i=1; %j=1; s=r/t; u=s; starts=1; for j=1:t %matr(i,j)=mat2cell(fintopstr(i,starts:u)); %matri(i,j)=mat2cell(finbotstr(i,starts:u)); rowheads1=strvcat(rowheads1,[fintopstr(i,starts:u)],[finbotstr(i,starts:u)]); if j==t save rowheads1.mat rowheads1; save j.mat j; end starts=starts+s; u=u+s; if u > r u=r; end end rowheads2=strvcat(rowheads2,rowheads1); end %save matr.mat matr; %save matri.mat matri; %for i=1:size(matr,1) %p=0; %for j=1:size(matr,2) % if j>1 % p=p+3; % end %matrf=cell2mat(matr); %matrif=cell2mat(matri); %save matrf.mat matrf; %save matrif.mat matrif; %Table2(i,j+p)=matr(i,j); %if p==0 % continue; %else %Table2(i,j+p-2)=matri(i,j); %end %end %end atab2=[]; %save atab.mat atab; %save Table2.mat Table2; atab2=[cellstr(strjust(rowheads,'left')),atab2]; abc=cellstr(strjust(rowheads1,'left')); startt=1; for d=1:q cba(d,1:2*t)=abc(startt:startt+2*t-1,1)'; startt=startt+2*t; end save cba.mat cba; save abc.mat abc; save atab2.mat atab2; save Table2.mat Table2; Table22=num2cell(Table2); save rowheads2.mat rowheads2; for b=1:2*n atab2=[atab2,Table22(:,b),cba(:,b)]; end atab2=[cellstr(strjust(colheads,'left'))';atab2]; atab22=atab2; save atab22.mat atab22; %atab2=[cellstr(strjust(colheads,'left'))'; atab]; %rowd=cellstr(strjust(rowheads,'left')); %cold=cellstr(strjust(colheads,'left')); %save rowd.mat rowd; %save cold.mat cold; %atab = [cellstr(strjust(rowheads,'left')), atab]; %atabb=atab; %save atabb.mat atabb; %atab = [cellstr(strjust(colheads,'left'))'; atab]; wtitle = 'Table_Extremes'; ttitle = 'SS and Percent SS'; digits = ones(1,4*n+1)*(-1); disptxt = displayform(atab2,digits); disptxt = [repmat('-',1,size(disptxt,2));disptxt(1,:); repmat('-',1,size(disptxt,2)); disptxt(2:end,:)] fid = fopen([wtitle '_Run' num2str(cdata.run) '_Comp'... num2str(cdata.compnum),'_Rot' num2str(get(findobj('Tag','rotation'),'value')) '.txt'],'w'); for txti=1:size(disptxt,1) fprintf(fid,'%s',disptxt(txti,:)); fprintf(fid,'\n'); end fclose(fid); commandwindow; else text(cdata.Azpr(:,1)*-1, cdata.Azpr(:,2),cdata.Azpr(:,3),num2str([1:size(cdata.Z,2)]')); end if (length(cdata.compnum)>1 && cdata.compnum(2) >=3) || (length(cdata.compnum)==1 && cdata.compnum >=3) title('Only present the first 3 dimensions','fontsize',9,'fontweight','bold'); end xlabel('Component 1','fontsize',9,'fontweight','bold'); ylabel('Component 2','fontsize',9,'fontweight','bold'); zlabel('Component 3','fontsize',9,'fontweight','bold'); elseif (length(cdata.compnum)>1 && cdata.compnum(2) ==2) || (length(cdata.compnum)==1 && cdata.compnum ==2) scatter(cdata.Azpr(:,1)*-1, cdata.Azpr(:,2),'b'); if cdata.Hlabelflag text(cdata.Azpr(:,1)*-1, cdata.Azpr(:,2),cdata.Hlabel); else text(cdata.Azpr(:,1)*-1, cdata.Azpr(:,2),num2str([1:size(cdata.Z,2)]')); end xlabel('Component 1','fontsize',9,'fontweight','bold'); ylabel('Component 2','fontsize',9,'fontweight','bold'); elseif (length(cdata.compnum)>1 && cdata.compnum(2) ==1) || (length(cdata.compnum)==1 && cdata.compnum ==1) plot(cdata.Azpr(:,1)*-1,[1:length(cdata.Azpr(:,1))]','ob'); if cdata.Glabelflag text([1:size(cdata.CP_p,1)]',cdata.CP_p(:,1)*-1,cdata.Glabel); else text([1:size(cdata.Azpr,1)]',cdata.CP_p(:,1)*-1, num2str([1:size(cdata.CP_p,1)]')); end if cdata.Hlabelflag text([1:size(cdata.Azpr,1)]',cdata.Azpr(:,1)*-1,cdata.Hlabel); else text([1:size(cdata.Azpr,1)]',cdata.Azpr(:,1)*-1,num2str([1:size(cdata.Z,2)]')); end xlabel('Component 1','fontsize',9,'fontweight','bold'); end legend('Variables',4);legend('boxoff'); saveas(fh,'OnlyH_loading.fig'); case 'OnlyH_E' % User selects within component. fh = figure('MenuBar','none','Visible','on', 'HandleVisibility','callback',... 'Toolbar','figure','Name','Within component loading','NumberTitle','off'); if (length(cdata.compnum)>1 && cdata.compnum(3) >=3) || (length(cdata.compnum)==1 && cdata.compnum >=3) scatter(cdata.Azer(:,1), cdata.Azer(:,2)); if cdata.Hlabelflag text(cdata.Azer(:,1), cdata.Azer(:,2),cdata.Hlabel,'FontSize',16); [m n]=size(cdata.Azer); if m<10 g=m; else g=10; end top=[]; bottom=[]; d=g+1; [a b] = size(cdata.Zlabel); start=1; for c=1:n for k=1:d top(k,c)=cdata.Azer(k,c); topstr(k,start:start+b-1)=cdata.Zlabel(k,:); %topstr2(k,:)=cdata.Zlabel(k,:); %topstr3(k,:)=cdata.Zlabel(k,:); bot(k,c)=cdata.Azer(k,c); botstr(k,start:start+b-1)=cdata.Zlabel(k,:); %botstr2(k,:)=cdata.Zlabel(k,:); %botstr3(k,:)=cdata.Zlabel(k,:); end start=start+b+1; end topback=topstr; %topback=[a b]; save topback.mat topback; start=1; for c=1:n for k=1:m h=1; %top=topback; while ((cdata.Azer(k,c)top(h,c) topp=top; toppstr=topstr; topp(h,c)=cdata.Azer(k,c); %[c d]=size(topstr(k,:)); toppstr(h,start:start+b-1)=cdata.Zlabel(k,:); while (hg) break; else topp(h,c)=top(f,c); toppstr(h,start:start+b-1)=topstr(f,start:start+b-1); end end toppstr(h,start+b)=' '; top=topp; fintop=top(1:g,1:c); topstr=toppstr; fintopstr=topstr(1:g,:); cdata.top=top; save top.mat top; cdata.fintop=fintop; save fintop.mat fintop; cdata.topstr=topstr; save topstr.mat topstr; cdata.fintopstr=fintopstr; save fintopstr.mat fintopstr; end end end for k=1:m h=1; while ((cdata.Azer(k,c)>bot(h,c)) && h<=g && hg) break; else bott(h,c)=bot(f,c); bottstr(h,start:start+b-1)=botstr(f,start:start+b-1); end end bottstr(h,start+b)=' '; bot=bott; finbot=bot(1:g,1:c); botstr=bottstr; finbotstr=botstr(1:g,:); cdata.bot=bot; save bot.mat bot; cdata.finbot=finbot; save finbot.mat finbot; cdata.botstr=botstr; save botstr.mat botstr; cdata.finbotstr=finbotstr; save finbotstr.mat finbotstr; end end end start=start+b+1; end Table2=zeros(g,2*n); per100=100; %compsum=[]; colheads=strvcat('Source'); for compi=1:n colheads = strvcat(colheads,['Comp' num2str(compi) ' High'], ['Comp' num2str(compi) 'High Val'], ['Comp' num2str(compi) 'Low' ],['Comp' num2str(compi) 'Low Val' ]); end save colheads.mat colheads; %colheads = strvcat('Source ', 'External '); %for compi=1:max(cdata.compnum) % colheads = strvcat(colheads,['Comp' num2str(compi) ' ']); %end %colheads = strvcat(colheads, 'Allcomp'); %Table2(:,1)=[ cdata.tsum per100... %cdata.tsum_p cdata.total_perc_p per100... %cdata.tsum_e cdata.total_perc_e per100]'; %************************************************ %if length(cdata.compnum)==1 % for compi=1:cdata.compnum % eval(['Table(:,1+compi)=[' 'cdata.component.c' num2str(compi) '_sum %'... % 'cdata.component.c' num2str(compi) '_perc '... % 'cdata.component.c' num2str(compi) '_sum_p '... % 'cdata.component.total_c' num2str(compi) '_perc_p '... % 'cdata.component.c' num2str(compi) '_perc_p '... % 'cdata.component.c' num2str(compi) '_sum_e ' ... % 'cdata.component.total_c' num2str(compi) '_perc_e '... % 'cdata.component.c' num2str(compi) '_perc_e];']); % end % elseif length(cdata.compnum)>1 % for compi=1:cdata.compnum(1) % eval(['Table(1:2,1+compi)=['... % 'cdata.component.c' num2str(compi) '_sum '... % 'cdata.component.c' num2str(compi) '_perc ];']); % end % for compi=1:cdata.compnum(2) % eval(['Table(3:5,1+compi)=['... % 'cdata.component.c' num2str(compi) '_sum_p '... % 'cdata.component.total_c' num2str(compi) '_perc_p '... % 'cdata.component.c' num2str(compi) '_perc_p ];']); % end % for compi=1:cdata.compnum(3) % eval(['Table(6:8,1+compi)=['... % 'cdata.component.c' num2str(compi) '_sum_e '... % 'cdata.component.total_c' num2str(compi) '_perc_e '... % 'cdata.component.c' num2str(compi) '_perc_e ];']); % end % % end % eval(['Table(:,end)=[' 'cdata.comp_sum '... % 'cdata.comp_sum_perc '... % 'cdata.comp_sum_p '... % 'cdata.component.total_comp_perc_p '... % 'cdata.comp_sum_perc_p '... % 'cdata.comp_sum_e '... % 'cdata.component.total_comp_perc_e '... % 'cdata.comp_sum_perc_e]; ']); % %************************************************ rowheads = strvcat('1','2','3','4',... '5','6','7','8','9','10'); %atab = num2cell(fintop); %atab2= num2cell(finbot); t=size(fintop,2); for i=1:size(fintop,1) %p=0; for j=1:size(fintop,2) %if (isinf(atab{i,j})) %atab{i,j} = []; %end %if %atab{i,j} = sprintf('%.2f', atab{i,j}); %end %if j>1 % p=p+3; %end Table2(i, 2*j-1)=fintop(i,j); %p=1; Table2(i, 2*j)=finbot(i,j); end end [q r]=size(fintopstr); save q.mat q; save r.mat r; rowheads1=[]; rowheads2=[]; for i=1:q %i=1; %j=1; s=r/t; u=s; starts=1; for j=1:t %matr(i,j)=mat2cell(fintopstr(i,starts:u)); %matri(i,j)=mat2cell(finbotstr(i,starts:u)); rowheads1=strvcat(rowheads1,[fintopstr(i,starts:u)],[finbotstr(i,starts:u)]); if j==t save rowheads1.mat rowheads1; save j.mat j; end starts=starts+s; u=u+s; if u > r u=r; end end rowheads2=strvcat(rowheads2,rowheads1); end %save matr.mat matr; %save matri.mat matri; %for i=1:size(matr,1) %p=0; %for j=1:size(matr,2) % if j>1 % p=p+3; % end %matrf=cell2mat(matr); %matrif=cell2mat(matri); %save matrf.mat matrf; %save matrif.mat matrif; %Table2(i,j+p)=matr(i,j); %if p==0 % continue; %else %Table2(i,j+p-2)=matri(i,j); %end %end %end atab2=[]; %save atab.mat atab; %save Table2.mat Table2; atab2=[cellstr(strjust(rowheads,'left')),atab2]; abc=cellstr(strjust(rowheads1,'left')); startt=1; for d=1:q cba(d,1:2*t)=abc(startt:startt+2*t-1,1)'; startt=startt+2*t; end save cba.mat cba; save abc.mat abc; save atab2.mat atab2; save Table2.mat Table2; Table22=num2cell(Table2); save rowheads2.mat rowheads2; for b=1:2*n atab2=[atab2,Table22(:,b),cba(:,b)]; end atab2=[cellstr(strjust(colheads,'left'))';atab2]; atab22=atab2; save atab22.mat atab22; %atab2=[cellstr(strjust(colheads,'left'))'; atab]; %rowd=cellstr(strjust(rowheads,'left')); %cold=cellstr(strjust(colheads,'left')); %save rowd.mat rowd; %save cold.mat cold; %atab = [cellstr(strjust(rowheads,'left')), atab]; %atabb=atab; %save atabb.mat atabb; %atab = [cellstr(strjust(colheads,'left'))'; atab]; wtitle = 'Table_Extremes'; ttitle = 'SS and Percent SS'; digits = ones(1,4*n+1)*(-1); disptxt = displayform(atab2,digits); disptxt = [repmat('-',1,size(disptxt,2));disptxt(1,:); repmat('-',1,size(disptxt,2)); disptxt(2:end,:)] fid = fopen([wtitle '_Run' num2str(cdata.run) '_Comp'... num2str(cdata.compnum),'_Rot' num2str(get(findobj('Tag','rotation'),'value')) '.txt'],'w'); for txti=1:size(disptxt,1) fprintf(fid,'%s',disptxt(txti,:)); fprintf(fid,'\n'); end fclose(fid); commandwindow; else text(cdata.Azer(:,1)*-1, cdata.Azer(:,2),num2str([1:size(cdata.Z,2)]')); end if (length(cdata.compnum)>1 && cdata.compnum(3) >=3) || (length(cdata.compnum)==1 && cdata.compnum >=3) title('Only present the first 3 dimensions','fontsize',9,'fontweight','bold'); end xlabel('Component 2','fontsize',9,'fontweight','bold'); ylabel('Component 3','fontsize',9,'fontweight','bold'); zlabel('Component 3','fontsize',9,'fontweight','bold'); elseif (length(cdata.compnum)>1 && cdata.compnum(3) ==2) || (length(cdata.compnum)==1 && cdata.compnum ==2) scatter(cdata.Azer(:,1)*-1, cdata.Azer(:,2)); if cdata.Hlabelflag text(cdata.Azer(:,1)*-1, cdata.Azer(:,2),cdata.Hlabel); else text(cdata.Azer(:,1)*-1, cdata.Azer(:,2),num2str([1:size(cdata.Z,2)]')); end xlabel('Component 1','fontsize',9,'fontweight','bold'); ylabel('Component 2','fontsize',9,'fontweight','bold'); elseif (length(cdata.compnum)>1 && cdata.compnum(3) ==1) || (length(cdata.compnum)==1 && cdata.compnum ==1) plot(cdata.Azer(:,1)*-1,[1:length(cdata.Azer(:,1))]','o'); if cdata.Hlabelflag text([1:size(cdata.Azer,1)]',cdata.Azer(:,1)*-1,cdata.Hlabel); else text([1:size(cdata.Azer,1)]',cdata.Azer(:,1)*-1,num2str([1:size(cdata.Z,2)]')); end xlabel('Component 1','fontsize',9,'fontweight','bold'); end legend('Variables',4); legend('boxoff'); saveas(fh,'OnlyH_E_loading.fig'); case 'Eigenvalues_by_onlyH' % User selects within component. fh=figure('MenuBar','none','Visible','on', 'HandleVisibility','callback',... 'Toolbar','figure','Name','Eigenvalues from only H','NumberTitle','off'); plot([1:length(cdata.Dzp)]',cdata.Dzp,'-ok'); ylabel('Eigenvalues','fontsize',9,'fontweight','bold'); saveas(fh,'Eigenvalues_by_OnlyH.fig'); case 'Eigenvalues_by_notH' % User selects within component. fh=figure('MenuBar','none','Visible','on', 'HandleVisibility','callback',... 'Toolbar','figure','Name','Eigenvalues from not H','NumberTitle','off'); plot([1:length(cdata.Dze)]',cdata.Dze,'-ok'); ylabel('Eigenvalues','fontsize',9,'fontweight','bold'); saveas(fh,'Eigenvalues_by_notOnlyH.fig'); %------------------------------------------------------------------ %****************************************************************** end cd(path); % Run CPCA callback. function runcpca_Callback(source,eventdata) global cdata; if ~isfield(cdata,'Z') || ~(isfield(cdata,'G')||isfield(cdata,'H')||isfield(cdata,'A')) msgbox('No data files selected','Error'); return; end if get(findobj('Tag','component'),'value') && get(findobj('Tag','diffcomponent'),'value') msgbox('Please specify the number of components','Error'); return; end if ~get(findobj('Tag','colcenter'),'Value')&& ~get(findobj('Tag','normalization'),'Value') msgbox('The analysis will be carried out with no preprocessing','Warning'); % return; end G=get(findobj('Tag','Gdirectory'),'Value'); H=get(findobj('Tag','Hdirectory'),'Value'); A=get(findobj('Tag','Adirectory'),'Value'); if H==0 && A==0 && G ~=0 action='G'; elseif H~=0 && A==0 && G ~=0 action='GH'; elseif H==0 && A~=0 && G ~=0 action='GA'; elseif H~=0 && A==0 && G ==0 action='OnlyH'; end switch action case {'G'} set(findobj('Tag','popup_menu'),'String',{'Table_by_G','Total','Acc_for_by_G','Not_Acc_for_by_G',... 'Eigenvalues_by_Total','Eigenvalues_by_G','Eigenvalues_by_notG'}); case {'GH'} set(findobj('Tag','popup_menu'),'String',{'Table_GH','Total','GH','G','H','E',... 'Eigenvalues_by_Total','Eigenvalues_by_GH','Eigenvalues_by_GH_G','Eigenvalues_by_H','Eigenvalues_by_E'}); case {'GA'} set(findobj('Tag','popup_menu'),'String',{'Table_GA','Total','GA','E2','E1',... 'Eigenvalues_by_Total','Eigenvalues_by_GA','Eigenvalues_by_E2','Eigenvalues_by_E1'}); case {'OnlyH'} set(findobj('Tag','popup_menu'),'String',{'Table_H','Total','OnlyH','OnlyH_E',... 'Eigenvalues_by_Total','Eigenvalues_by_onlyH','Eigenvalues_by_notH'}); otherwise set(findobj('Tag','popup_menu'),'String','uneffective service'); end if strcmp(get(findobj('Tag','component'),'Enable'),'off') switch action case {'G'} compnum_total=cdata.compnum(1); compnum_G=cdata.compnum(2); compnum_notG=cdata.compnum(3); case {'GH'} compnum_total=cdata.compnum(1); compnum_GH=cdata.compnum(2); compnum_GH_G=cdata.compnum(3); compnum_GH_H=cdata.compnum(4); compnum_GH_E=cdata.compnum(5); case {'GA'} compnum_total=cdata.compnum(1); compnum_GA=cdata.compnum(2); compnum_GA_E2=cdata.compnum(3); compnum_GA_E1=cdata.compnum(4); case {'OnlyH'} compnum_total=cdata.compnum(1); compnum_OnlyH=cdata.compnum(2); compnum_notOnlyH=cdata.compnum(3); otherwise set(findobj('Tag','popup_menu'),'String','uneffective service'); end else compnum_total=cdata.compnum; compnum_G=cdata.compnum; compnum_notG=cdata.compnum; compnum_GH=cdata.compnum; compnum_GH_H=cdata.compnum; compnum_GH_G=cdata.compnum; compnum_GH_E=cdata.compnum; compnum_GA=cdata.compnum; compnum_GA_E2=cdata.compnum; compnum_GA_E1=cdata.compnum; compnum_OnlyH=cdata.compnum; compnum_notOnlyH=cdata.compnum; end % svd total [m n]=size(cdata.Z); [Uz Dz Vz]=svd(cdata.Z,0); Uzr=Uz(:,1:compnum_total); Dzr=Dz(1:compnum_total,1:compnum_total); Vzr=Vz(:,1:compnum_total); cdata.Azr=(Vzr*Dzr)./sqrt(m-1); cdata.Fzr=Uzr*sqrt(m); if get(findobj('Tag','rotation'),'value') %rotation [cdata.Azr,cdata.rotmatrix_t]=varimax(cdata.Azr); cdata.Fzr=cdata.Fzr*cdata.rotmatrix_t; end cdata.Dz=(diag(Dz).^2)./(m-1); cdata.tvar=sum((diag(Dz).^2)./(m-1)); for compi=1:compnum_total eval(['cdata.component.c' num2str(compi) '_var=(Dz(' num2str(compi) ',' num2str(compi) ').^2)./(m-1);']); eval(['cdata.component.c' num2str(compi) '_perc=cdata.component.c' num2str(compi) '_var/cdata.tvar*100;']); end % sum of squared deviations from the mean cdata.tsum=0; for j=1:n cdata.tsum=cdata.tsum+cdata.Z(:,j)'*cdata.Z(:,j); end MMMM=cdata.tsum; save MMMM.mat MMMM; cdata.comp_sum=0; cdata.comp_sum_perc=0; for compi=1:compnum_total eval(['cdata.component.c' num2str(compi) '_sum=cdata.tsum*cdata.component.c' num2str(compi) '_perc/100;']); %comp1 variant eval(['cdata.comp_sum=cdata.comp_sum+cdata.component.c' num2str(compi) '_sum;']); eval(['cdata.comp_sum_perc=cdata.comp_sum_perc+cdata.component.c' num2str(compi) '_perc;']); end switch action case {'G'} % Z=G*C+E; C=inv((cdata.G'*cdata.G))*cdata.G'*cdata.Z; ZP=cdata.G*C; ZE=cdata.Z-ZP; % svd predictable. [Uzp Dzp Vzp]=svd(ZP); Uzpr=Uzp(:,1:compnum_G); Dzpr=Dzp(1:compnum_G,1:compnum_G); Vzpr=Vzp(:,1:compnum_G); cdata.Azpr=(Vzpr*Dzpr)./sqrt(m-1); cdata.Azp=(Vzp*Dzp(1:size(Vzp,1),1:size(Vzp,2)))./sqrt(m-1); cdata.Dzp=(diag(Dzp).^2)./(m-1); cdata.Fzpr=Uzpr*sqrt(m); if get(findobj('Tag','rotation'),'value') %rotation [cdata.Azpr,cdata.rotmatrix_p]=varimax(cdata.Azpr); cdata.Fzpr=cdata.Fzpr*cdata.rotmatrix_p; end cdata.CP_p=corrcoef([cdata.G cdata.Fzpr]); cdata.CP_p=cdata.CP_p(1:size(cdata.G,2),end-compnum_G+1:end); cdata.tvar_p=sum((diag(Dzp).^2)./(m-1)); for compi=1:compnum_G if get(findobj('Tag','rotation'),'value') %rotation eval(['cdata.component.c' num2str(compi) '_var_p=sum(cdata.Azpr(' ':' ',' num2str(compi) ').^2);']); eval(['cdata.component.c' num2str(compi) '_perc_p=cdata.component.c' num2str(compi) '_var_p/cdata.tvar_p*100;']); else eval(['cdata.component.c' num2str(compi) '_var_p=(Dzpr(' num2str(compi) ',' num2str(compi) ').^2)./(m-1);']); eval(['cdata.component.c' num2str(compi) '_perc_p=cdata.component.c' num2str(compi) '_var_p/cdata.tvar_p*100;']); end end % sum of squared deviations from the mean cdata.tsum_p=0; for j=1:n cdata.tsum_p=cdata.tsum_p+ZP(:,j)'*ZP(:,j); end cdata.comp_sum_p=0; cdata.comp_sum_perc_p=0; cdata.component.total_comp_perc_p=0; for compi=1:compnum_G eval(['cdata.component.c' num2str(compi) '_sum_p=cdata.tsum_p*cdata.component.c' num2str(compi) '_perc_p/100;']); %comp1 variant eval(['cdata.comp_sum_p=cdata.comp_sum_p+cdata.component.c' num2str(compi) '_sum_p;']); eval(['cdata.comp_sum_perc_p=cdata.comp_sum_perc_p+cdata.component.c' num2str(compi) '_perc_p;']); eval(['cdata.component.total_c' num2str(compi) '_perc_p=cdata.component.c' num2str(compi) '_sum_p/cdata.tsum*100;']); eval(['cdata.component.total_comp_perc_p= cdata.component.total_comp_perc_p + cdata.component.total_c' num2str(compi) '_perc_p;']); end eval(['cdata.total_perc_p=cdata.tsum_p/cdata.tsum*100;']); %significant test on eigenvalues [Fmx_G d2_G dd_G] = pcaptspecial1_Single(cdata.G, cdata.Z,'G'); cdata.eigensig.Fmx_G=Fmx_G; cdata.eigensig.d2_G=d2_G; cdata.eigensig.dd_G=dd_G; % svd error. [Uze Dze Vze]=svd(ZE); Uzer=Uze(:,1:compnum_notG); Dzer=Dze(1:compnum_notG,1:compnum_notG); Vzer=Vze(:,1:compnum_notG); cdata.Azer=(Vzer*Dzer)./sqrt(m-1); cdata.Fzer=Uzer*sqrt(m); if get(findobj('Tag','rotation'),'value') %rotation [cdata.Azer,cdata.rotmatrix_e]=varimax(cdata.Azer); cdata.Fzer=cdata.Fzer*cdata.rotmatrix_e; end cdata.Dze=(diag(Dze).^2)./(m-1); cdata.tvar_e=sum((diag(Dze).^2)./(m-1)); for compi=1:compnum_notG if get(findobj('Tag','rotation'),'value') %rotation eval(['cdata.component.c' num2str(compi) '_var_e=sum(cdata.Azer(' ':' ',' num2str(compi) ').^2);']); eval(['cdata.component.c' num2str(compi) '_perc_e=cdata.component.c' num2str(compi) '_var_e/cdata.tvar_e*100;']); else eval(['cdata.component.c' num2str(compi) '_var_e=(Dzer(' num2str(compi) ',' num2str(compi) ').^2)./(m-1);']); eval(['cdata.component.c' num2str(compi) '_perc_e=cdata.component.c' num2str(compi) '_var_e/cdata.tvar_e*100;']); end end % sum of squared deviations from the mean cdata.tsum_e=0; for j=1:n cdata.tsum_e=cdata.tsum_e+ZE(:,j)'*ZE(:,j); end cdata.comp_sum_e=0; cdata.comp_sum_perc_e=0; cdata.component.total_comp_perc_e=0; for compi=1:compnum_notG eval(['cdata.component.c' num2str(compi) '_sum_e=cdata.tsum_e*cdata.component.c' num2str(compi) '_perc_e/100;']); %comp1 variant eval(['cdata.comp_sum_e=cdata.comp_sum_e+cdata.component.c' num2str(compi) '_sum_e;']); eval(['cdata.comp_sum_perc_e=cdata.comp_sum_perc_e+cdata.component.c' num2str(compi) '_perc_e;']); eval(['cdata.component.total_c' num2str(compi) '_perc_e=cdata.component.c' num2str(compi) '_sum_e/cdata.tsum*100;']); eval(['cdata.component.total_comp_perc_e= cdata.component.total_comp_perc_e + cdata.component.total_c' num2str(compi) '_perc_e;']); end eval(['cdata.total_perc_e=cdata.tsum_e/cdata.tsum*100;']); cdata = orderfields(cdata); cdata.component = orderfields(cdata.component); set(findobj('Tag','popup_menu'),'Enable','on'); set(findobj('Tag','zscore'),'Enable','off'); %set(findobj('Tag','colcenter'),'Enable','off'); %set(findobj('Tag','normalization'),'Enable','off'); case {'GH'} DDDD=cdata.G; EEEE=cdata.Z; FFFF=cdata.H; save DDDD.mat DDDD; save EEEE.mat EEEE; save FFFF.mat FFFF; [m n]=size(cdata.Z); In=eye(m); Ip=eye(n); Qg = In - cdata.G*(inv(cdata.G'*cdata.G))*cdata.G'; cdata.B = Qg*cdata.Z*cdata.H*inv(cdata.H'*cdata.H); Qh = Ip - cdata.H*inv(cdata.H'*cdata.H)*cdata.H'; C = inv(cdata.G'*cdata.G)*cdata.G'*cdata.Z*Qh; cdata.M = inv(cdata.G'*cdata.G)*cdata.G'*cdata.Z*cdata.H*inv(cdata.H'*cdata.H); Zg=cdata.G*C; Zh=cdata.B*cdata.H'; Zb=cdata.G*cdata.M*cdata.H'; ZE=cdata.Z-Zg-Zh-Zb; % GMH' predictable. [Uzb Dzb Vzb]=svd(Zb); Uzbr=Uzb(:,1:compnum_GH); Dzbr=Dzb(1:compnum_GH,1:compnum_GH); Vzbr=Vzb(:,1:compnum_GH); cdata.Azbr=(Vzbr*Dzbr)./sqrt(m-1); cdata.Fzbr=Uzbr*sqrt(m); if get(findobj('Tag','rotation'),'value') %rotation [cdata.Azbr,cdata.rotmatrix_b]=varimax(cdata.Azbr); cdata.Fzbr=cdata.Fzbr*cdata.rotmatrix_b; end cdata.Dzb=(diag(Dzb).^2)./(m-1); cdata.tvar_b=sum((diag(Dzb).^2)./(m-1)); for compi=1:compnum_GH if get(findobj('Tag','rotation'),'value') %rotation eval(['cdata.component.c' num2str(compi) '_var_b=sum(cdata.Azbr(' ':' ',' num2str(compi) ').^2);']); eval(['cdata.component.c' num2str(compi) '_perc_b=cdata.component.c' num2str(compi) '_var_b/cdata.tvar_b*100;']); else eval(['cdata.component.c' num2str(compi) '_var_b=(Dzbr(' num2str(compi) ',' num2str(compi) ').^2)./(m-1);']); eval(['cdata.component.c' num2str(compi) '_perc_b=cdata.component.c' num2str(compi) '_var_b/cdata.tvar_b*100;']); end end % sum of squared deviations from the mean cdata.tsum_b=0; for j=1:n cdata.tsum_b=cdata.tsum_b+Zb(:,j)'*Zb(:,j); end cdata.comp_sum_b=0; cdata.comp_sum_perc_b=0; cdata.component.total_comp_perc_b=0; for compi=1:compnum_GH eval(['cdata.component.c' num2str(compi) '_sum_b=cdata.tsum_b*cdata.component.c' num2str(compi) '_perc_b/100;']); %comp1 variant eval(['cdata.comp_sum_b=cdata.comp_sum_b+cdata.component.c' num2str(compi) '_sum_b;']); eval(['cdata.comp_sum_perc_b=cdata.comp_sum_perc_b+cdata.component.c' num2str(compi) '_perc_b;']); eval(['cdata.component.total_c' num2str(compi) '_perc_b=cdata.component.c' num2str(compi) '_sum_b/cdata.tsum*100;']); eval(['cdata.component.total_comp_perc_b= cdata.component.total_comp_perc_b + cdata.component.total_c' num2str(compi) '_perc_b;']); end eval(['cdata.total_perc_b=cdata.tsum_b/cdata.tsum*100;']); [Fmx_GH d2_GH dd_GH] = pcaptspecial1_Multi(cdata.G, cdata.Z,cdata.H); cdata.eigensig.Fmx_GH=Fmx_GH; cdata.eigensig.d2_GH=d2_GH; cdata.eigensig.dd_GH=dd_GH; % GC predictable [Uzg Dzg Vzg]=svd(Zg); Uzgr=Uzg(:,1:compnum_GH_G); Dzgr=Dzg(1:compnum_GH_G,1:compnum_GH_G); Vzgr=Vzg(:,1:compnum_GH_G); cdata.Azgr=(Vzgr*Dzgr)./sqrt(m-1); cdata.Fzgr=Uzgr*sqrt(m); if get(findobj('Tag','rotation'),'value') %rotation [cdata.Azgr,cdata.rotmatrix_g]=varimax(cdata.Azgr); cdata.Fzgr=cdata.Fzgr*cdata.rotmatrix_g; end cdata.Dzg=(diag(Dzg).^2)./(m-1); cdata.tvar_g=sum((diag(Dzg).^2)./(m-1)); for compi=1:compnum_GH_G if get(findobj('Tag','rotation'),'value') %rotation eval(['cdata.component.c' num2str(compi) '_var_g=sum(cdata.Azgr(' ':' ',' num2str(compi) ').^2);']); eval(['cdata.component.c' num2str(compi) '_perc_g=cdata.component.c' num2str(compi) '_var_g/cdata.tvar_g*100;']); else eval(['cdata.component.c' num2str(compi) '_var_g=(Dzgr(' num2str(compi) ',' num2str(compi) ').^2)./(m-1);']); eval(['cdata.component.c' num2str(compi) '_perc_g=cdata.component.c' num2str(compi) '_var_g/cdata.tvar_g*100;']); end end % sum of squared deviations from the mean cdata.tsum_g=0; for j=1:n cdata.tsum_g=cdata.tsum_g+Zg(:,j)'*Zg(:,j); end cdata.comp_sum_g=0; cdata.comp_sum_perc_g=0; cdata.component.total_comp_perc_g=0; for compi=1:compnum_GH_G eval(['cdata.component.c' num2str(compi) '_sum_g=cdata.tsum_g*cdata.component.c' num2str(compi) '_perc_g/100;']); %comp1 variant eval(['cdata.comp_sum_g=cdata.comp_sum_g+cdata.component.c' num2str(compi) '_sum_g;']); eval(['cdata.comp_sum_perc_g=cdata.comp_sum_perc_g+cdata.component.c' num2str(compi) '_perc_g;']); eval(['cdata.component.total_c' num2str(compi) '_perc_g=cdata.component.c' num2str(compi) '_sum_g/cdata.tsum*100;']); eval(['cdata.component.total_comp_perc_g= cdata.component.total_comp_perc_g + cdata.component.total_c' num2str(compi) '_perc_g;']); end eval(['cdata.total_perc_g=cdata.tsum_g/cdata.tsum*100;']); % BH' predictable. [Uzh Dzh Vzh]=svd(Zh); Uzhr=Uzh(:,1:compnum_GH_H); Dzhr=Dzh(1:compnum_GH_H,1:compnum_GH_H); Vzhr=Vzh(:,1:compnum_GH_H); cdata.Azhr=(Vzhr*Dzhr)./sqrt(m-1); cdata.Fzhr=Uzhr*sqrt(m); if get(findobj('Tag','rotation'),'value') %rotation [cdata.Azhr,cdata.rotmatrix_h]=varimax(cdata.Azhr); cdata.Fzhr=cdata.Fzhr*cdata.rotmatrix_h; end cdata.Dzh=(diag(Dzh).^2)./(m-1); cdata.tvar_h=sum((diag(Dzh).^2)./(m-1)); for compi=1:compnum_GH_H if get(findobj('Tag','rotation'),'value') %rotation eval(['cdata.component.c' num2str(compi) '_var_h=sum(cdata.Azhr(' ':' ',' num2str(compi) ').^2);']); eval(['cdata.component.c' num2str(compi) '_perc_h=cdata.component.c' num2str(compi) '_var_h/cdata.tvar_h*100;']); else eval(['cdata.component.c' num2str(compi) '_var_h=(Dzhr(' num2str(compi) ',' num2str(compi) ').^2)./(m-1);']); eval(['cdata.component.c' num2str(compi) '_perc_h=cdata.component.c' num2str(compi) '_var_h/cdata.tvar_h*100;']); end end % sum of squared deviations from the mean cdata.tsum_h=0; for j=1:n cdata.tsum_h=cdata.tsum_h+Zh(:,j)'*Zh(:,j); end cdata.comp_sum_h=0; cdata.comp_sum_perc_h=0; cdata.component.total_comp_perc_h=0; for compi=1:compnum_GH_H eval(['cdata.component.c' num2str(compi) '_sum_h=cdata.tsum_h*cdata.component.c' num2str(compi) '_perc_h/100;']); %comp1 variant eval(['cdata.comp_sum_h=cdata.comp_sum_h+cdata.component.c' num2str(compi) '_sum_h;']); eval(['cdata.comp_sum_perc_h=cdata.comp_sum_perc_h+cdata.component.c' num2str(compi) '_perc_h;']); eval(['cdata.component.total_c' num2str(compi) '_perc_h=cdata.component.c' num2str(compi) '_sum_h/cdata.tsum*100;']); eval(['cdata.component.total_comp_perc_h= cdata.component.total_comp_perc_h + cdata.component.total_c' num2str(compi) '_perc_h;']); end eval(['cdata.total_perc_h=cdata.tsum_h/cdata.tsum*100;']); % svd error. [Uze Dze Vze]=svd(ZE); Uzer=Uze(:,1:compnum_GH_E); Dzer=Dze(1:compnum_GH_E,1:compnum_GH_E); Vzer=Vze(:,1:compnum_GH_E); cdata.Azer=(Vzer*Dzer)./sqrt(m-1); cdata.Fzer=Uzer*sqrt(m); if get(findobj('Tag','rotation'),'value') %rotation [cdata.Azer,cdata.rotmatrix_e]=varimax(cdata.Azer); cdata.Fzer=cdata.Fzer*cdata.rotmatrix_e; end cdata.tvar_e=sum((diag(Dze).^2)./(m-1)); for compi=1:compnum_GH_E if get(findobj('Tag','rotation'),'value') %rotation eval(['cdata.component.c' num2str(compi) '_var_e=sum(cdata.Azer(' ':' ',' num2str(compi) ').^2);']); eval(['cdata.component.c' num2str(compi) '_perc_e=cdata.component.c' num2str(compi) '_var_e/cdata.tvar_e*100;']); else eval(['cdata.component.c' num2str(compi) '_var_e=(Dzer(' num2str(compi) ',' num2str(compi) ').^2)./(m-1);']); eval(['cdata.component.c' num2str(compi) '_perc_e=cdata.component.c' num2str(compi) '_var_e/cdata.tvar_e*100;']); end end % sum of squared deviations from the mean cdata.tsum_e=0; for j=1:n cdata.tsum_e=cdata.tsum_e+ZE(:,j)'*ZE(:,j); end cdata.Dze=(diag(Dze).^2)./(m-1); cdata.comp_sum_e=0; cdata.comp_sum_perc_e=0; cdata.component.total_comp_perc_e=0; for compi=1:compnum_GH_E eval(['cdata.component.c' num2str(compi) '_sum_e=cdata.tsum_e*cdata.component.c' num2str(compi) '_perc_e/100;']); %comp1 variant eval(['cdata.comp_sum_e=cdata.comp_sum_e+cdata.component.c' num2str(compi) '_sum_e;']); eval(['cdata.comp_sum_perc_e=cdata.comp_sum_perc_e+cdata.component.c' num2str(compi) '_perc_e;']); eval(['cdata.component.total_c' num2str(compi) '_perc_e=cdata.component.c' num2str(compi) '_sum_e/cdata.tsum*100;']); eval(['cdata.component.total_comp_perc_e= cdata.component.total_comp_perc_e + cdata.component.total_c' num2str(compi) '_perc_e;']); end eval(['cdata.total_perc_e=cdata.tsum_e/cdata.tsum*100;']); cdata = orderfields(cdata); cdata.component = orderfields(cdata.component); set(findobj('Tag','popup_menu'),'Enable','on'); set(findobj('Tag','zscore'),'Enable','off'); set(findobj('Tag','colcenter'),'Enable','off'); set(findobj('Tag','normalization'),'Enable','off'); case {'GA'} [m n]=size(cdata.Z); In=eye(m); Qga = In - cdata.G*cdata.A*inv(cdata.A'*cdata.G'*cdata.G*cdata.A)*cdata.A'*cdata.G'; % E2 = inv(cdata.G'*Qga*cdata.G)*cdata.G'*Qga*cdata.Z; % E2 = inv(cdata.G'*cdata.G)*cdata.G'*Qga*cdata.Z; Qg = In - cdata.G*(inv(cdata.G'*cdata.G))*cdata.G'; cdata.W = inv(cdata.A'*cdata.G'*cdata.G*cdata.A)*cdata.A'*cdata.G'*cdata.Z; Zga=cdata.G*cdata.A*cdata.W; ZE1=Qg*cdata.Z; ZE2=cdata.Z-Zga-ZE1; % GA predictable. [Uzga Dzga Vzga]=svd(Zga); Uzgar=Uzga(:,1:compnum_GA); Dzgar=Dzga(1:compnum_GA,1:compnum_GA); Vzgar=Vzga(:,1:compnum_GA); cdata.Azgar=(Vzgar*Dzgar)./sqrt(m-1); cdata.Fzgar=Uzgar*sqrt(m); if get(findobj('Tag','rotation'),'value') %rotation [cdata.Azgar,cdata.rotmatrix_ga]=varimax(cdata.Azgar); cdata.Fzgar=cdata.Fzgar*cdata.rotmatrix_ga; end % cdata.CP_ga=corrcoef([cdata.G cdata.Fzgar]); [Fmx_GA d2_GA dd_GA] = pcaptspecial1_Single(cdata.G*cdata.A, cdata.Z,'GA'); cdata.eigensig.Fmx_GA=Fmx_GA; cdata.eigensig.d2_GA=d2_GA; cdata.eigensig.dd_GA=dd_GA; cdata.Dzga=(diag(Dzga).^2)./(m-1); cdata.tvar_ga=sum((diag(Dzga).^2)./(m-1)); for compi=1:compnum_GA if get(findobj('Tag','rotation'),'value') %rotation eval(['cdata.component.c' num2str(compi) '_var_ga=sum(cdata.Azgar(' ':' ',' num2str(compi) ').^2);']); eval(['cdata.component.c' num2str(compi) '_perc_ga=cdata.component.c' num2str(compi) '_var_ga/cdata.tvar_ga*100;']); else eval(['cdata.component.c' num2str(compi) '_var_ga=(Dzgar(' num2str(compi) ',' num2str(compi) ').^2)./(m-1);']); eval(['cdata.component.c' num2str(compi) '_perc_ga=cdata.component.c' num2str(compi) '_var_ga/cdata.tvar_ga*100;']); end end % sum of squared deviations from the mean cdata.tsum_ga=0; for j=1:n cdata.tsum_ga=cdata.tsum_ga+Zga(:,j)'*Zga(:,j); end cdata.comp_sum_ga=0; cdata.comp_sum_perc_ga=0; cdata.component.total_comp_perc_ga=0; for compi=1:compnum_GA eval(['cdata.component.c' num2str(compi) '_sum_ga=cdata.tsum_ga*cdata.component.c' num2str(compi) '_perc_ga/100;']); %comp1 variant eval(['cdata.comp_sum_ga=cdata.comp_sum_ga+cdata.component.c' num2str(compi) '_sum_ga;']); eval(['cdata.comp_sum_perc_ga=cdata.comp_sum_perc_ga+cdata.component.c' num2str(compi) '_perc_ga;']); eval(['cdata.component.total_c' num2str(compi) '_perc_ga=cdata.component.c' num2str(compi) '_sum_ga/cdata.tsum*100;']); eval(['cdata.component.total_comp_perc_ga= cdata.component.total_comp_perc_ga + cdata.component.total_c' num2str(compi) '_perc_ga;']); end eval(['cdata.total_perc_ga=cdata.tsum_ga/cdata.tsum*100;']); % GE2 predictable [Uze2 Dze2 Vze2]=svd(ZE2); Uze2r=Uze2(:,1:compnum_GA_E2); Dze2r=Dze2(1:compnum_GA_E2,1:compnum_GA_E2); Vze2r=Vze2(:,1:compnum_GA_E2); cdata.Aze2r=(Vze2r*Dze2r)./sqrt(m-1); cdata.Fze2r=Uze2r*sqrt(m); if get(findobj('Tag','rotation'),'value') %rotation [cdata.Aze2r,cdata.rotmatrix_e2]=varimax(cdata.Aze2r); cdata.Fze2r=cdata.Fze2r*cdata.rotmatrix_e2; end cdata.Dze2=(diag(Dze2).^2)./(m-1); cdata.tvar_e2=sum((diag(Dze2).^2)./(m-1)); for compi=1:compnum_GA_E2 if get(findobj('Tag','rotation'),'value') %rotation eval(['cdata.component.c' num2str(compi) '_var_e2=sum(cdata.Aze2r(' ':' ',' num2str(compi) ').^2);']); eval(['cdata.component.c' num2str(compi) '_perc_e2=cdata.component.c' num2str(compi) '_var_e2/cdata.tvar_e2*100;']); else eval(['cdata.component.c' num2str(compi) '_var_e2=(Dze2r(' num2str(compi) ',' num2str(compi) ').^2)./(m-1);']); eval(['cdata.component.c' num2str(compi) '_perc_e2=cdata.component.c' num2str(compi) '_var_e2/cdata.tvar_e2*100;']); end end % sum of squared deviations from the mean cdata.tsum_e2=0; for j=1:n cdata.tsum_e2=cdata.tsum_e2+ZE2(:,j)'*ZE2(:,j); end cdata.comp_sum_e2=0; cdata.comp_sum_perc_e2=0; cdata.component.total_comp_perc_e2=0; for compi=1:compnum_GA_E2 eval(['cdata.component.c' num2str(compi) '_sum_e2=cdata.tsum_e2*cdata.component.c' num2str(compi) '_perc_e2/100;']); %comp1 variant eval(['cdata.comp_sum_e2=cdata.comp_sum_e2+cdata.component.c' num2str(compi) '_sum_e2;']); eval(['cdata.comp_sum_perc_e2=cdata.comp_sum_perc_e2+cdata.component.c' num2str(compi) '_perc_e2;']); eval(['cdata.component.total_c' num2str(compi) '_perc_e2=cdata.component.c' num2str(compi) '_sum_e2/cdata.tsum*100;']); eval(['cdata.component.total_comp_perc_e2= cdata.component.total_comp_perc_e2 + cdata.component.total_c' num2str(compi) '_perc_e2;']); end eval(['cdata.total_perc_e2=cdata.tsum_e2/cdata.tsum*100;']); % svd error. [Uze1 Dze1 Vze1]=svd(ZE1); Uze1r=Uze1(:,1:compnum_GA_E1); Dze1r=Dze1(1:compnum_GA_E1,1:compnum_GA_E1); Vze1r=Vze1(:,1:compnum_GA_E1); cdata.Aze1r=(Vze1r*Dze1r)./sqrt(m-1); cdata.Fze1r=Uze1r*sqrt(m); if get(findobj('Tag','rotation'),'value') %rotation [cdata.Aze1r,cdata.rotmatrix_e1]=varimax(cdata.Aze1r); cdata.Fze1r=cdata.Fze1r*cdata.rotmatrix_e1; end cdata.Dze1=(diag(Dze1).^2)./(m-1); cdata.tvar_e1=sum((diag(Dze1).^2)./(m-1)); for compi=1:compnum_GA_E1 if get(findobj('Tag','rotation'),'value') %rotation eval(['cdata.component.c' num2str(compi) '_var_e1=sum(cdata.Aze1r(' ':' ',' num2str(compi) ').^2);']); eval(['cdata.component.c' num2str(compi) '_perc_e1=cdata.component.c' num2str(compi) '_var_e1/cdata.tvar_e1*100;']); else eval(['cdata.component.c' num2str(compi) '_var_e1=(Dze1r(' num2str(compi) ',' num2str(compi) ').^2)./(m-1);']); eval(['cdata.component.c' num2str(compi) '_perc_e1=cdata.component.c' num2str(compi) '_var_e1/cdata.tvar_e1*100;']); end end % sum of squared deviations from the mean cdata.tsum_e1=0; for j=1:n cdata.tsum_e1=cdata.tsum_e1+ZE1(:,j)'*ZE1(:,j); end cdata.comp_sum_e1=0; cdata.comp_sum_perc_e1=0; cdata.component.total_comp_perc_e1=0; for compi=1:compnum_GA_E1 eval(['cdata.component.c' num2str(compi) '_sum_e1=cdata.tsum_e1*cdata.component.c' num2str(compi) '_perc_e1/100;']); %comp1 variant eval(['cdata.comp_sum_e1=cdata.comp_sum_e1+cdata.component.c' num2str(compi) '_sum_e1;']); eval(['cdata.comp_sum_perc_e1=cdata.comp_sum_perc_e1+cdata.component.c' num2str(compi) '_perc_e1;']); eval(['cdata.component.total_c' num2str(compi) '_perc_e1=cdata.component.c' num2str(compi) '_sum_e1/cdata.tsum*100;']); eval(['cdata.component.total_comp_perc_e1= cdata.component.total_comp_perc_e1 + cdata.component.total_c' num2str(compi) '_perc_e1;']); end eval(['cdata.total_perc_e1=cdata.tsum_e1/cdata.tsum*100;']); cdata = orderfields(cdata); cdata.component = orderfields(cdata.component); set(findobj('Tag','popup_menu'),'Enable','on'); set(findobj('Tag','zscore'),'Enable','off'); set(findobj('Tag','colcenter'),'Enable','off'); set(findobj('Tag','normalization'),'Enable','off'); case {'OnlyH'} IIII=cdata.H; JJJJ=cdata.Z; save IIII.mat IIII; save JJJJ.mat JJJJ; % Z=B*H'+E; B=cdata.Z*cdata.H*inv(cdata.H'*cdata.H); save B.mat B; ZP=B*cdata.H'; save ZP.mat ZP; %ZP=ZP-ones(size(ZP,1),1)*mean(ZP); %[m,n] = size(ZP); %ST=std(ZP,0); %ZP=ZP./ST(ones(m,1),:); %save ZP1.mat ZP1; %[nr nc]=size(ZP); % %for j=1:nc %fprintf('Part 1 of 3, on Column %0.0f of %0.0f\n',j,nc); % z=ZP(:,j); %zm=sum(z)/nr; %for i=1:nr % ZP(i,j)=z(i)-zm; % end %end %for j=1:nc %fprintf('Part 2 of 3, on Column %0.0f of %0.0f\n',j,nc); % z=ZP(:,j); % sd=sqrt(z'*z/nr); % for i=1:nr % ZP(i,j)=z(i)/sd; % end %end ZE=cdata.Z-ZP; save ZE.mat ZE; tot=ZP'*ZE; tot=tot-ones(size(tot,1),1)*mean(tot); %tott=sum(sum(tot)); %save tott.mat tott; tot1=ZP'*ZP; %tott1=sum(sum(tot1)); %save tott1.mat tott1; tot2=ZE'*ZE; %tott2=sum(sum(tot2)); %save tott2.mat tott2; %save tot.mat tot; %ZE=ZE-ones(size(ZE,1),1)*mean(ZE); % svd predictable. [Uzp Dzp Vzp]=svd(ZP); Uzpr=Uzp(:,1:compnum_OnlyH); Dzpr=Dzp(1:compnum_OnlyH,1:compnum_OnlyH); Vzpr=Vzp(:,1:compnum_OnlyH); cdata.Azpr=(Vzpr*Dzpr)./sqrt(m-1); cdata.Azp=(Vzp*Dzp(1:size(Vzp,1),1:size(Vzp,2)))./sqrt(m-1); cdata.Dzp=(diag(Dzp).^2)./(m-1); cdata.Fzpr=Uzpr*sqrt(m); if get(findobj('Tag','rotation'),'value') %rotation [cdata.Azpr,cdata.rotmatrix_p]=varimax(cdata.Azpr); cdata.Fzpr=cdata.Fzpr*cdata.rotmatrix_p; end cdata.tvar_p=sum((diag(Dzp).^2)./(m-1)); for compi=1:compnum_OnlyH if get(findobj('Tag','rotation'),'value') %rotation eval(['cdata.component.c' num2str(compi) '_var_p=sum(cdata.Azpr(' ':' ',' num2str(compi) ').^2);']); eval(['cdata.component.c' num2str(compi) '_perc_p=cdata.component.c' num2str(compi) '_var_p/cdata.tvar_p*100;']); else eval(['cdata.component.c' num2str(compi) '_var_p=(Dzpr(' num2str(compi) ',' num2str(compi) ').^2)./(m-1);']); eval(['cdata.component.c' num2str(compi) '_perc_p=cdata.component.c' num2str(compi) '_var_p/cdata.tvar_p*100;']); end end % sum of squared deviations from the mean cdata.tsum_p=0; %ZP=ZP-ones(size(ZP,1),1)*mean(cdata.Z); n for j=1:n cdata.tsum_p=cdata.tsum_p+ZP(:,j)'*ZP(:,j); cdata.tsum_p end KKKK=cdata.tsum_p; save KKKK.mat KKKK; cdata.comp_sum_p=0; cdata.comp_sum_perc_p=0; cdata.component.total_comp_perc_p=0; for compi=1:compnum_OnlyH eval(['cdata.component.c' num2str(compi) '_sum_p=cdata.tsum_p*cdata.component.c' num2str(compi) '_perc_p/100;']); %comp1 variant eval(['cdata.comp_sum_p=cdata.comp_sum_p+cdata.component.c' num2str(compi) '_sum_p;']); eval(['cdata.comp_sum_perc_p=cdata.comp_sum_perc_p+cdata.component.c' num2str(compi) '_perc_p;']); eval(['cdata.component.total_c' num2str(compi) '_perc_p=cdata.component.c' num2str(compi) '_sum_p/cdata.tsum*100;']); eval(['cdata.component.total_comp_perc_p= cdata.component.total_comp_perc_p + cdata.component.total_c' num2str(compi) '_perc_p;']); end eval(['cdata.total_perc_p=cdata.tsum_p/cdata.tsum*100;']); [Fmx_OnlyH d2_OnlyH dd_OnlyH] = pcaptspecial1_Single(cdata.H, cdata.Z,'OnlyH'); cdata.eigensig.Fmx_OnlyH=Fmx_OnlyH; cdata.eigensig.d2_OnlyH=d2_OnlyH; cdata.eigensig.dd_OnlyH=dd_OnlyH; % svd error. [Uze Dze Vze]=svd(ZE); Uzer=Uze(:,1:compnum_notOnlyH); Dzer=Dze(1:compnum_notOnlyH,1:compnum_notOnlyH); Vzer=Vze(:,1:compnum_notOnlyH); cdata.Azer=(Vzer*Dzer)./sqrt(m-1); cdata.Fzer=Uzer*sqrt(m); if get(findobj('Tag','rotation'),'value') %rotation [cdata.Azer,cdata.rotmatrix_e]=varimax(cdata.Azer); cdata.Fzer=cdata.Fzer*cdata.rotmatrix_e; end cdata.Dze=(diag(Dze).^2)./(m-1); cdata.tvar_e=sum((diag(Dze).^2)./(m-1)); for compi=1:compnum_notOnlyH if get(findobj('Tag','rotation'),'value') %rotation eval(['cdata.component.c' num2str(compi) '_var_e=sum(cdata.Azer(' ':' ',' num2str(compi) ').^2);']); eval(['cdata.component.c' num2str(compi) '_perc_e=cdata.component.c' num2str(compi) '_var_e/cdata.tvar_e*100;']); else eval(['cdata.component.c' num2str(compi) '_var_e=(Dzer(' num2str(compi) ',' num2str(compi) ').^2)./(m-1);']); eval(['cdata.component.c' num2str(compi) '_perc_e=cdata.component.c' num2str(compi) '_var_e/cdata.tvar_e*100;']); end end % sum of squared deviations from the mean cdata.tsum_e=0; for j=1:n cdata.tsum_e=cdata.tsum_e+ZE(:,j)'*ZE(:,j); end LLLL=cdata.tsum_e; save LLLL.mat LLLL; cdata.comp_sum_e=0; cdata.comp_sum_perc_e=0; cdata.component.total_comp_perc_e=0; for compi=1:compnum_notOnlyH eval(['cdata.component.c' num2str(compi) '_sum_e=cdata.tsum_e*cdata.component.c' num2str(compi) '_perc_e/100;']); %comp1 variant eval(['cdata.comp_sum_e=cdata.comp_sum_e+cdata.component.c' num2str(compi) '_sum_e;']); eval(['cdata.comp_sum_perc_e=cdata.comp_sum_perc_e+cdata.component.c' num2str(compi) '_perc_e;']); eval(['cdata.component.total_c' num2str(compi) '_perc_e=cdata.component.c' num2str(compi) '_sum_e/cdata.tsum*100;']); eval(['cdata.component.total_comp_perc_e= cdata.component.total_comp_perc_e + cdata.component.total_c' num2str(compi) '_perc_e;']); end eval(['cdata.total_perc_e=cdata.tsum_e/cdata.tsum*100;']); cdata = orderfields(cdata); cdata.component = orderfields(cdata.component); set(findobj('Tag','popup_menu'),'Enable','on'); set(findobj('Tag','zscore'),'Enable','off'); set(findobj('Tag','colcenter'),'Enable','off'); set(findobj('Tag','normalization'),'Enable','off'); otherwise msgbox('No action executed','Error','warn'); end fprintf('Congratulations! CPCA done\n'); save cdata cdata function Z=zscore(X) [m,n] = size(X); ST = std(X,0);% Old std(X,1) MN = mean(X); Z=(X-MN(ones(m,1),:))./ST(ones(m,1),:); function [B,T]=varimax(A) % produces varimax rotated version of A and rotation matrix T % Based on nevels 1986; see also pascal source % % input: A (matrix to be rotated) % output: B (rotated A) % T (rotation matrix) % f (varimax function) conv=.000001; [m,r]=size(A); T=eye(r); B=A; f=ssq((A.*A)-ones(m,1)*mean(A.*A)); fold=f-2*conv*f; iter=0; while f-fold>f*conv fold=f;iter=iter+1; for i=1:r for j=i+1:r x=B(:,i);y=B(:,j); xx=T(:,i);yy=T(:,j); u=x.^2-y.^2;v=2*x.*y; u=u-ones(m,1)*mean(u);v=v-ones(m,1)*mean(v); a=2*r*sum(u.*v);b=r*sum(u.^2)-r*sum(v.^2);c=(a^2+b^2)^.5; if a>=0; sign=1; end; if a<0; sign=-1; end; if c<.00000000001 disp(' No rotation anymore'); cos=1;sin=0; end; if c>=.00000000001 vvv=-sign*((b+c)/(2*c))^.5; sin=(.5-.5*vvv)^.5;cos=(.5+.5*vvv)^.5; end; v=cos*x-sin*y;w=cos*y+sin*x; vv=cos*xx-sin*yy;ww=cos*yy+sin*xx; if vvv>=0 % prevent permutation of columns B(:,i)=v;B(:,j)=w;T(:,i)=vv;T(:,j)=ww; end; if vvv<0 B(:,j)=v;B(:,i)=w;T(:,j)=vv;T(:,i)=ww; end; end; end; f=ssq((B.*B)-ones(m,1)*mean(B.*B)); end % file to perform sum of squares function [x] = ssq(x) x=trace(x*x'); %truncates a path label into something that will fit into a text box %the code performing is extracted from the programs written by mitenko david function shorty=short_path(longpath) if iscell(longpath) paths_n=size(longpath,2); if paths_n>5 %%truncate all the paths to make a summary for i=1:3 shorty{i}=shorten(longpath{i}); end; shorty{4}='...'; shorty{5}=shorten(longpath{paths_n-1}); shorty{6}=shorten(longpath{paths_n}); else for i=1:paths_n shorty{i}=shorten(longpath{i}); end; end; else shorty=shorten(longpath); end; function s=shorten(l) if ispc DELIM='\'; else DELIM='/'; end; idx=strfind(l, DELIM); if size(idx,2)>=3 use=size(idx,2)-1;%only contain the closer directory s=['...' l(:,idx(:,use):size(l,2))]; else s=l; end; function m = displayform(tbl,digits) %DISPLAYFORM Creates a text representation of a table for display [nr,nc] = size(tbl); if (nargin<2), digits = repmat(-1,nc,1); end blanks = repmat(' ', nr, 3); m = [strvcat(tbl{:,1}) blanks]; for c=2:nc if (c == nc), blanks = ''; end m = [m displaycol(tbl(2:end,c),tbl{1,c},digits(c)) blanks]; end % -------------------------- function txt = displaycol(t,h,d) %DISPLAYCOL Creates a text representation of a column for display % t = table column, h = header, d = number of digits after decimal nrows = size(t,1); nbefore = 0; % digits to the left of the decimal nafter = 0; % digits to the right of the decimal maxlen = 0; % length doit = false(nrows,1); fmt = '%g'; % Convert each entry to text and collect info on it usefmt = 0; for r=1:nrows val = t{r}; if ~isnumeric(val) t{r} = val; continue; end v = sprintf(fmt, val); len = length(v); if (isempty(val)) t{r} = ' '; elseif ((all(v==' ') || isnan(val))) t{r} = v; maxlen = max(maxlen, len); elseif (any(v=='e')) doit(r) = 1; else usefmt = 1; doit(r) = 1; j = find(v=='.'); if (isempty(j)) nbefore = max(nbefore, length(v)); else nbefore = max(nbefore, j(1)); nafter = max(nafter, len-j(1)); end end end % Figure out what f format we really want if (any(doit)) if (usefmt) if (d < 0), d = max(0, 7-nbefore); end w = max(maxlen, nbefore + d); fmt = sprintf('%%%d.%df', w, d); end for r=1:nrows if (doit(r)) v = sprintf(fmt, t{r}); % impose this format if (any(v=='.') && ~any(v=='e')) % blank out trailing 0's n = length(v); x = n+1-find(v~='0',1,'last'); if (v(n-x+1)~='.'), x = x-1; end if (x>0), v(n-x+1:n) = '%'; end end t{r} = v; end end end % Justify, remove blanks, but don't remove everything txt = strjust(strvcat(t)); nlines = size(txt,1); txt(txt=='%') = ' '; txt = deblank(txt); if (nlines > size(txt,1)), txt = repmat(' ', nlines, 1); end % Center heading over column if requested if (nargin>1) n1 = length(h); n2 = size(txt,2); n = size(txt,1); dif = n1-n2; if (dif>0) txt = [h; repmat(' ',n,floor(dif/2)) txt repmat(' ',n,ceil(dif/2))]; else txt = [repmat(' ',1,floor(-dif/2)) h repmat(' ',1,ceil(-dif/2)); txt]; end end function [Fmx d2 dd] = pcaptspecial1_Single(PredictV, Z, type) [np nc]=size(PredictV); A=PredictV'*PredictV; [u1 d1 v1]=svd(A); Aisq=u1*sqrt(inv(d1))*v1'; U=PredictV*Aisq;%U is such that UU' is P_{PredictV} switch type case {'G','GA'} B=U'*Z; case {'OnlyH'} B=Z*U; end BBp=B*B'; [P d2 v2]=svd(BBp);%d2 has dominant eigenvalues Ns=100; pb=0; ls=0; Fmx=[]; D3M=[]; Rmxc=[]; GB=zeros(np,nc); a=zeros(np,1); %pb<.05 & while lsrmxc fmx=fmx+1;%Counts the number of times %d3(1) exceeds the ls-th largest eigenvalue from %the original data end dd(k,ls)=d3(1); end D3M=[D3M D3m]; pb=fmx/Ns;%the p-value Temp=[ls fmx pb]; Fmx=[Fmx;Temp]; end function [Fmx d2 dd] = pcaptspecial1_Multi(G,Z,H) [ngr ngc]=size(G); A=G'*G; [u1 d1 v1]=svd(A); Aisq=u1*sqrt(inv(d1))*v1'; U=G*Aisq;%U is such that UU' is P_{PredictV} [nhr nhc]=size(H); HH=H'*H; [u2 d2 v2]=svd(HH); hh=u2*sqrt(inv(d2))*v2'; N=H*hh; B=U'*Z*N; BBp=B*B'; [P d2 v2]=svd(BBp);%d2 has dominant eigenvalues Ns=100; pb=0; ls=0; Fmx=[]; D3M=[]; Rmxc=[]; GB=zeros(ngr,ngc); HB=zeros(nhr,nhc); %pb<.05 & while lsrmxc fmx=fmx+1;%Counts the number of times %d3(1) exceeds the ls-th largest eigenvalue from %the original data end dd(k,ls)=d3(1); end D3M=[D3M D3m]; pb=fmx/Ns;%the p-value Temp=[ls fmx pb]; Fmx=[Fmx;Temp]; end