cwEPR App for processing, simulating, and fitting CW EPR data

Programs, scripts and GUIs shared by EasySpin users
bruin
User
Posts: 27
Joined: Fri May 29, 2020 11:07 am

Re: cwEPR App for processing, simulating, and fitting CW EPR data

Post by bruin »

Thanks Ernesto

Meanwhile I also managed to fix the problem with "get esfit fit1" (with 4 or more hyperfines not being imported).

The section from line 528 until "function [vary]=getvarys(~,varypars,t)" needs to be replaced by the following lines to fix the problem:

Code: Select all

    function syslst_new = getsysstructs(~,syslst,sys_strct,sys_params)
        
        syslst_new=syslst;
        for i=1:numel(sys_params)
            for j=1:numel(syslst)
                syslstf=strsplit(syslst{j},'=');
                switch syslstf{1}
                    case sys_params{i}
                        if contains(sys_params{i},'function')==1 || contains(sys_params{i},'method')==1 || contains(sys_params{i},'Nucs')==1
                            syslst_new{j}=[sys_params{i},'=',sys_strct.(sys_params{i})];
                        else
                            sys_vals{1}=sys_params{i};
                            sys_val=sys_strct.(sys_params{i});
                            if length(sys_val(1,:))==1 && length(sys_val(:,1))==1
                                sys_vals{2}=num2str(sys_val(1));
                                
                            elseif length(sys_val(1,:))==2 && length(sys_val(:,1))==1
                                sys_vals{2}=['[',num2str(sys_val(1)),' ',num2str(sys_val(2)),']'];
                                
                            elseif length(sys_val(1,:))==1 && length(sys_val(:,1))==2
                                sys_vals{2}=['[',num2str(sys_val(1)),';',num2str(sys_val(2)),']'];
                                
                            elseif length(sys_val(1,:))==2 && length(sys_val(:,1))==2
                                sys_vals{2}=['[',num2str(sys_val(1,1)),' ',num2str(sys_val(1,2)),';',num2str(sys_val(2,1)),' ',num2str(sys_val(2,2)),']'];
                                
                            elseif length(sys_val(1,:))==3 && length(sys_val(:,1))==1
                                sys_vals{2}=['[',num2str(sys_val(1)),' ',num2str(sys_val(2)),' ',num2str(sys_val(3)),']'];
                                
                            elseif length(sys_val(1,:))==1 && length(sys_val(:,1))==3
                                sys_vals{2}=['[',num2str(sys_val(1)),';',num2str(sys_val(2)),';',num2str(sys_val(3)),']'];
                                
                            elseif length(sys_val(1,:))==3 && length(sys_val(:,1))==2
                                sys_vals{2}=['[',num2str(sys_val(1,1)),' ',num2str(sys_val(1,2)),' ',num2str(sys_val(1,3)),';',...
                                    num2str(sys_val(2,1)),' ',num2str(sys_val(2,2)),' ',num2str(sys_val(2,3)),']'];
                                
                            elseif length(sys_val(1,:))==2 && length(sys_val(:,1))==3
                                sys_vals{2}=['[',num2str(sys_val(1,1)),' ',num2str(sys_val(1,2)),'; ',num2str(sys_val(2,1)),' ',...
                                    num2str(sys_val(2,2)),'; ',num2str(sys_val(3,1)),' ',num2str(sys_val(3,2)),']'];
                                
                            elseif length(sys_val(1,:))==3 && length(sys_val(:,1))==3
                                sys_vals{2}=['[',num2str(sys_val(1,1)),' ',num2str(sys_val(1,2)),' ',num2str(sys_val(1,3)),';',...
                                    num2str(sys_val(2,1)),' ',num2str(sys_val(2,2)),' ',num2str(sys_val(2,3)),';',...
                                    num2str(sys_val(3,1)),' ',num2str(sys_val(3,2)),' ',num2str(sys_val(3,3)),']'];

%%%%
%%%% The following lines were added to enable "get esfit, fit1" for up to 10 nuclei

Code: Select all

                            elseif length(sys_val(1,:))==4 && length(sys_val(:,1))==1
                                sys_vals{2}=['[',num2str(sys_val(1)),' ',num2str(sys_val(2)),' ',num2str(sys_val(3)),' ',num2str(sys_val(4)),']'];

                            elseif length(sys_val(1,:))==1 && length(sys_val(:,1))==4
                                sys_vals{2}=['[',num2str(sys_val(1)),';',num2str(sys_val(2)),';',num2str(sys_val(3)),';',num2str(sys_val(4)),']']; 
                                                    
                            elseif length(sys_val(1,:))==2 && length(sys_val(:,1))==4
                                sys_vals{2}=['[',num2str(sys_val(1,1)),' ',num2str(sys_val(1,2)),';',...
                                    num2str(sys_val(2,1)),' ',num2str(sys_val(2,2)),';',...
                                    num2str(sys_val(3,1)),' ',num2str(sys_val(3,2)),';',...
                                    num2str(sys_val(4,1)),' ',num2str(sys_val(4,2)),']'];

                            elseif length(sys_val(1,:))==3 && length(sys_val(:,1))==4
                                sys_vals{2}=['[',num2str(sys_val(1,1)),' ',num2str(sys_val(1,2)),' ',num2str(sys_val(1,3)),';',...
                                    num2str(sys_val(2,1)),' ',num2str(sys_val(2,2)),' ',num2str(sys_val(2,3)),';',...
                                    num2str(sys_val(3,1)),' ',num2str(sys_val(3,2)),' ',num2str(sys_val(3,3)),';',...
                                    num2str(sys_val(4,1)),' ',num2str(sys_val(4,2)),' ',num2str(sys_val(4,3)),']'];

                           elseif length(sys_val(1,:))==5 && length(sys_val(:,1))==1
                                sys_vals{2}=['[',num2str(sys_val(1)),' ',num2str(sys_val(2)),' ',num2str(sys_val(3)),' ',num2str(sys_val(4)),' ',num2str(sys_val(5)),']'];

                            elseif length(sys_val(1,:))==1 && length(sys_val(:,1))==5
                                sys_vals{2}=['[',num2str(sys_val(1)),';',num2str(sys_val(2)),';',num2str(sys_val(3)),';',num2str(sys_val(4)),';',num2str(sys_val(5)),']']; 
                                                    
                            elseif length(sys_val(1,:))==2 && length(sys_val(:,1))==5
                                sys_vals{2}=['[',num2str(sys_val(1,1)),' ',num2str(sys_val(1,2)),';',...
                                    num2str(sys_val(2,1)),' ',num2str(sys_val(2,2)),';',...
                                    num2str(sys_val(3,1)),' ',num2str(sys_val(3,2)),';',...
                                    num2str(sys_val(4,1)),' ',num2str(sys_val(4,2)),';',...
                                    num2str(sys_val(5,1)),' ',num2str(sys_val(5,2)),']'];

                            elseif length(sys_val(1,:))==3 && length(sys_val(:,1))==5
                                sys_vals{2}=['[',num2str(sys_val(1,1)),' ',num2str(sys_val(1,2)),' ',num2str(sys_val(1,3)),';',...
                                    num2str(sys_val(2,1)),' ',num2str(sys_val(2,2)),' ',num2str(sys_val(2,3)),';',...
                                    num2str(sys_val(3,1)),' ',num2str(sys_val(3,2)),' ',num2str(sys_val(3,3)),';',...
                                    num2str(sys_val(4,1)),' ',num2str(sys_val(4,2)),' ',num2str(sys_val(4,3)),';',...
                                    num2str(sys_val(5,1)),' ',num2str(sys_val(5,2)),' ',num2str(sys_val(5,3)),']'];

                            elseif length(sys_val(1,:))==6 && length(sys_val(:,1))==1
                                sys_vals{2}=['[',num2str(sys_val(1)),' ',num2str(sys_val(2)),' ',num2str(sys_val(3)),' ',num2str(sys_val(4)),' ',num2str(sys_val(5)),' ',num2str(sys_val(6)),']'];

                            elseif length(sys_val(1,:))==1 && length(sys_val(:,1))==6
                                sys_vals{2}=['[',num2str(sys_val(1)),';',num2str(sys_val(2)),';',num2str(sys_val(3)),';',num2str(sys_val(4)),';',num2str(sys_val(5)),';',num2str(sys_val(6)),']']; 

                            elseif length(sys_val(1,:))==2 && length(sys_val(:,1))==6
                                sys_vals{2}=['[',num2str(sys_val(1,1)),' ',num2str(sys_val(1,2)),';',...
                                    num2str(sys_val(2,1)),' ',num2str(sys_val(2,2)),';',...
                                    num2str(sys_val(3,1)),' ',num2str(sys_val(3,2)),';',...
                                    num2str(sys_val(4,1)),' ',num2str(sys_val(4,2)),';',...
                                    num2str(sys_val(5,1)),' ',num2str(sys_val(5,2)),';',...
                                    num2str(sys_val(6,1)),' ',num2str(sys_val(6,2)),']'];

                            elseif length(sys_val(1,:))==3 && length(sys_val(:,1))==6
                                sys_vals{2}=['[',num2str(sys_val(1,1)),' ',num2str(sys_val(1,2)),' ',num2str(sys_val(1,3)),';',...
                                    num2str(sys_val(2,1)),' ',num2str(sys_val(2,2)),' ',num2str(sys_val(2,3)),';',...
                                    num2str(sys_val(3,1)),' ',num2str(sys_val(3,2)),' ',num2str(sys_val(3,3)),';',...
                                    num2str(sys_val(4,1)),' ',num2str(sys_val(4,2)),' ',num2str(sys_val(4,3)),';',...
                                    num2str(sys_val(5,1)),' ',num2str(sys_val(5,2)),' ',num2str(sys_val(5,3)),';',...
                                    num2str(sys_val(6,1)),' ',num2str(sys_val(6,2)),' ',num2str(sys_val(6,3)),']'];

                            elseif length(sys_val(1,:))==7 && length(sys_val(:,1))==1
                                sys_vals{2}=['[',num2str(sys_val(1)),' ',num2str(sys_val(2)),' ',num2str(sys_val(3)),' ',num2str(sys_val(4)),' ',num2str(sys_val(5)),' ',num2str(sys_val(6)),' ',num2str(sys_val(7)),']'];

                            elseif length(sys_val(1,:))==1 && length(sys_val(:,1))==7
                                sys_vals{2}=['[',num2str(sys_val(1)),';',num2str(sys_val(2)),';',num2str(sys_val(3)),';',num2str(sys_val(4)),';',num2str(sys_val(5)),';',num2str(sys_val(6)),';',num2str(sys_val(7)),']']; 
                             
                            elseif length(sys_val(1,:))==2 && length(sys_val(:,1))==7
                                sys_vals{2}=['[',num2str(sys_val(1,1)),' ',num2str(sys_val(1,2)),';',...
                                    num2str(sys_val(2,1)),' ',num2str(sys_val(2,2)),';',...
                                    num2str(sys_val(3,1)),' ',num2str(sys_val(3,2)),';',...
                                    num2str(sys_val(4,1)),' ',num2str(sys_val(4,2)),';',...
                                    num2str(sys_val(5,1)),' ',num2str(sys_val(5,2)),';',...
                                    num2str(sys_val(6,1)),' ',num2str(sys_val(6,2)),';',...
                                    num2str(sys_val(7,1)),' ',num2str(sys_val(7,2)),']'];

                            elseif length(sys_val(1,:))==3 && length(sys_val(:,1))==7
                                sys_vals{2}=['[',num2str(sys_val(1,1)),' ',num2str(sys_val(1,2)),' ',num2str(sys_val(1,3)),';',...
                                    num2str(sys_val(2,1)),' ',num2str(sys_val(2,2)),' ',num2str(sys_val(2,3)),';',...
                                    num2str(sys_val(3,1)),' ',num2str(sys_val(3,2)),' ',num2str(sys_val(3,3)),';',...
                                    num2str(sys_val(4,1)),' ',num2str(sys_val(4,2)),' ',num2str(sys_val(4,3)),';',...
                                    num2str(sys_val(5,1)),' ',num2str(sys_val(5,2)),' ',num2str(sys_val(5,3)),';',...
                                    num2str(sys_val(6,1)),' ',num2str(sys_val(6,2)),' ',num2str(sys_val(6,3)),';',...
                                    num2str(sys_val(7,1)),' ',num2str(sys_val(7,2)),' ',num2str(sys_val(7,3)),']'];

                            elseif length(sys_val(1,:))==8 && length(sys_val(:,1))==1
                                sys_vals{2}=['[',num2str(sys_val(1)),' ',num2str(sys_val(2)),' ',num2str(sys_val(3)),' ',num2str(sys_val(4)),' ',num2str(sys_val(5)),' ',num2str(sys_val(6)),' ',num2str(sys_val(7)),' ',num2str(sys_val(8)),']'];

                            elseif length(sys_val(1,:))==1 && length(sys_val(:,1))==8
                                sys_vals{2}=['[',num2str(sys_val(1)),';',num2str(sys_val(2)),';',num2str(sys_val(3)),';',num2str(sys_val(4)),';',num2str(sys_val(5)),';',num2str(sys_val(6)),';',num2str(sys_val(7)),';',num2str(sys_val(8)),']']; 
                                                    
                            elseif length(sys_val(1,:))==2 && length(sys_val(:,1))==8
                                sys_vals{2}=['[',num2str(sys_val(1,1)),' ',num2str(sys_val(1,2)),';',...
                                    num2str(sys_val(2,1)),' ',num2str(sys_val(2,2)),';',...
                                    num2str(sys_val(3,1)),' ',num2str(sys_val(3,2)),';',...
                                    num2str(sys_val(4,1)),' ',num2str(sys_val(4,2)),';',...
                                    num2str(sys_val(5,1)),' ',num2str(sys_val(5,2)),';',...
                                    num2str(sys_val(6,1)),' ',num2str(sys_val(6,2)),';',...
                                    num2str(sys_val(7,1)),' ',num2str(sys_val(7,2)),';',...
                                    num2str(sys_val(8,1)),' ',num2str(sys_val(8,2)),']'];

                            elseif length(sys_val(1,:))==3 && length(sys_val(:,1))==8
                                sys_vals{2}=['[',num2str(sys_val(1,1)),' ',num2str(sys_val(1,2)),' ',num2str(sys_val(1,3)),';',...
                                    num2str(sys_val(2,1)),' ',num2str(sys_val(2,2)),' ',num2str(sys_val(2,3)),';',...
                                    num2str(sys_val(3,1)),' ',num2str(sys_val(3,2)),' ',num2str(sys_val(3,3)),';',...
                                    num2str(sys_val(4,1)),' ',num2str(sys_val(4,2)),' ',num2str(sys_val(4,3)),';',...
                                    num2str(sys_val(5,1)),' ',num2str(sys_val(5,2)),' ',num2str(sys_val(5,3)),';',...
                                    num2str(sys_val(6,1)),' ',num2str(sys_val(6,2)),' ',num2str(sys_val(6,3)),';',...
                                    num2str(sys_val(7,1)),' ',num2str(sys_val(7,2)),' ',num2str(sys_val(7,3)),';',...
                                    num2str(sys_val(8,1)),' ',num2str(sys_val(8,2)),' ',num2str(sys_val(8,3)),']'];

                            elseif length(sys_val(1,:))==9 && length(sys_val(:,1))==1
                                sys_vals{2}=['[',num2str(sys_val(1)),' ',num2str(sys_val(2)),' ',num2str(sys_val(3)),' ',num2str(sys_val(4)),' ',num2str(sys_val(5)),' ',num2str(sys_val(6)),' ',num2str(sys_val(7)),' ',num2str(sys_val(8)),' ',num2str(sys_val(9)),']'];

                            elseif length(sys_val(1,:))==1 && length(sys_val(:,1))==9
                                sys_vals{2}=['[',num2str(sys_val(1)),';',num2str(sys_val(2)),';',num2str(sys_val(3)),';',num2str(sys_val(4)),';',num2str(sys_val(5)),';',num2str(sys_val(6)),';',num2str(sys_val(7)),';',num2str(sys_val(8)),';',num2str(sys_val(9)),']']; 
                                                    
                            elseif length(sys_val(1,:))==2 && length(sys_val(:,1))==9
                                sys_vals{2}=['[',num2str(sys_val(1,1)),' ',num2str(sys_val(1,2)),';',...
                                    num2str(sys_val(2,1)),' ',num2str(sys_val(2,2)),';',...
                                    num2str(sys_val(3,1)),' ',num2str(sys_val(3,2)),';',...
                                    num2str(sys_val(4,1)),' ',num2str(sys_val(4,2)),';',...
                                    num2str(sys_val(5,1)),' ',num2str(sys_val(5,2)),';',...
                                    num2str(sys_val(6,1)),' ',num2str(sys_val(6,2)),';',...
                                    num2str(sys_val(7,1)),' ',num2str(sys_val(7,2)),';',...
                                    num2str(sys_val(8,1)),' ',num2str(sys_val(8,2)),';',...
                                    num2str(sys_val(9,1)),' ',num2str(sys_val(9,2)),']'];

                            elseif length(sys_val(1,:))==3 && length(sys_val(:,1))==9
                                sys_vals{2}=['[',num2str(sys_val(1,1)),' ',num2str(sys_val(1,2)),' ',num2str(sys_val(1,3)),';',...
                                    num2str(sys_val(2,1)),' ',num2str(sys_val(2,2)),' ',num2str(sys_val(2,3)),';',...
                                    num2str(sys_val(3,1)),' ',num2str(sys_val(3,2)),' ',num2str(sys_val(3,3)),';',...
                                    num2str(sys_val(4,1)),' ',num2str(sys_val(4,2)),' ',num2str(sys_val(4,3)),';',...
                                    num2str(sys_val(5,1)),' ',num2str(sys_val(5,2)),' ',num2str(sys_val(5,3)),';',...
                                    num2str(sys_val(6,1)),' ',num2str(sys_val(6,2)),' ',num2str(sys_val(6,3)),';',...
                                    num2str(sys_val(7,1)),' ',num2str(sys_val(7,2)),' ',num2str(sys_val(7,3)),';',...
                                    num2str(sys_val(8,1)),' ',num2str(sys_val(8,2)),' ',num2str(sys_val(8,3)),';',...
                                    num2str(sys_val(9,1)),' ',num2str(sys_val(9,2)),' ',num2str(sys_val(9,3)),']'];

                            elseif length(sys_val(1,:))==10 && length(sys_val(:,1))==1
                                sys_vals{2}=['[',num2str(sys_val(1)),' ',num2str(sys_val(2)),' ',num2str(sys_val(3)),' ',num2str(sys_val(4)),' ',num2str(sys_val(5)),' ',num2str(sys_val(6)),' ',num2str(sys_val(7)),' ',num2str(sys_val(8)),' ',num2str(sys_val(9)),' ',num2str(sys_val(10)),']'];

                            elseif length(sys_val(1,:))==1 && length(sys_val(:,1))==10
                                sys_vals{2}=['[',num2str(sys_val(1)),';',num2str(sys_val(2)),';',num2str(sys_val(3)),';',num2str(sys_val(4)),';',num2str(sys_val(5)),';',num2str(sys_val(6)),';',num2str(sys_val(7)),';',num2str(sys_val(8)),';',num2str(sys_val(9)),';',num2str(sys_val(10)),']']; 
                                                    
                            elseif length(sys_val(1,:))==2 && length(sys_val(:,1))==10
                                sys_vals{2}=['[',num2str(sys_val(1,1)),' ',num2str(sys_val(1,2)),';',...
                                    num2str(sys_val(2,1)),' ',num2str(sys_val(2,2)),';',...
                                    num2str(sys_val(3,1)),' ',num2str(sys_val(3,2)),';',...
                                    num2str(sys_val(4,1)),' ',num2str(sys_val(4,2)),';',...
                                    num2str(sys_val(5,1)),' ',num2str(sys_val(5,2)),';',...
                                    num2str(sys_val(6,1)),' ',num2str(sys_val(6,2)),';',...
                                    num2str(sys_val(7,1)),' ',num2str(sys_val(7,2)),';',...
                                    num2str(sys_val(8,1)),' ',num2str(sys_val(8,2)),';',...
                                    num2str(sys_val(9,1)),' ',num2str(sys_val(9,2)),';',...
                                    num2str(sys_val(10,1)),' ',num2str(sys_val(10,2)),']'];

                            elseif length(sys_val(1,:))==3 && length(sys_val(:,1))==10
                                sys_vals{2}=['[',num2str(sys_val(1,1)),' ',num2str(sys_val(1,2)),' ',num2str(sys_val(1,3)),';',...
                                    num2str(sys_val(2,1)),' ',num2str(sys_val(2,2)),' ',num2str(sys_val(2,3)),';',...
                                    num2str(sys_val(3,1)),' ',num2str(sys_val(3,2)),' ',num2str(sys_val(3,3)),';',...
                                    num2str(sys_val(4,1)),' ',num2str(sys_val(4,2)),' ',num2str(sys_val(4,3)),';',...
                                    num2str(sys_val(5,1)),' ',num2str(sys_val(5,2)),' ',num2str(sys_val(5,3)),';',...
                                    num2str(sys_val(6,1)),' ',num2str(sys_val(6,2)),' ',num2str(sys_val(6,3)),';',...
                                    num2str(sys_val(7,1)),' ',num2str(sys_val(7,2)),' ',num2str(sys_val(7,3)),';',...
                                    num2str(sys_val(8,1)),' ',num2str(sys_val(8,2)),' ',num2str(sys_val(8,3)),';',...
                                    num2str(sys_val(9,1)),' ',num2str(sys_val(9,2)),' ',num2str(sys_val(9,3)),';',...
                                    num2str(sys_val(10,1)),' ',num2str(sys_val(10,2)),' ',num2str(sys_val(10,3)),']'];

%%%%
elseif length(sys_val(1,:))==5 && length(sys_val(:,1))==2
sys_vals{2}=['[',num2str(sys_val(1,1)),' ',num2str(sys_val(1,2)),...
' ',num2str(sys_val(1,3)),' ',num2str(sys_val(1,4)),' ',num2str(sys_val(1,5)),...
';',num2str(sys_val(2,1)),' ',num2str(sys_val(2,2)),' ',...
num2str(sys_val(2,3)),' ',num2str(sys_val(2,4)),' ',num2str(sys_val(2,5)),']'];


% redundant now % elseif length(sys_val(1,:))==5 && length(sys_val(:,1))==1
% sys_vals{2}=['[',num2str(sys_val(1,1)),' ',num2str(sys_val(1,2)),' ',num2str(sys_val(1,3)),' ',...
% num2str(sys_val(1,4)),' ',num2str(sys_val(1,5)),']'];


Code: Select all

                            elseif length(sys_val(1,:))==6 && length(sys_val(:,1))==2
                                sys_vals{2}=['[',num2str(sys_val(1,1)),' ',num2str(sys_val(1,2)),...
                                    ' ',num2str(sys_val(1,3)),' ',num2str(sys_val(1,4)),' ',num2str(sys_val(1,5)),...
                                    ' ',num2str(sys_val(1,6)),';',num2str(sys_val(2,1)),' ',num2str(sys_val(2,2)),' ',...
                                    num2str(sys_val(2,3)),' ',num2str(sys_val(2,4)),' ',num2str(sys_val(2,5)),' ',num2str(sys_val(2,6)),']'];

% redundant now % elseif length(sys_val(1,:))==6 && length(sys_val(:,1))==1
% sys_vals{2}=['[',num2str(sys_val(1,1)),' ',num2str(sys_val(1,2)),' ',num2str(sys_val(1,3)),' ',...
% num2str(sys_val(1,4)),' ',num2str(sys_val(1,5)),' ',num2str(sys_val(1,6)),']'];


Code: Select all

                      %      elseif length(sys_val(1,:))==9 && length(sys_val(:,1))==1
                      %          sys_vals{2}=['[',num2str(sys_val(1)),' ',num2str(sys_val(2)),' ',num2str(sys_val(3)),' ',...
                      %              num2str(sys_val(4)),' ',num2str(sys_val(5)),' ',num2str(sys_val(6)),' ',...
                      %              num2str(sys_val(7)),' ',num2str(sys_val(8)),' ',num2str(sys_val(9)),']'];
                                
                      %      elseif length(sys_val(1,:))==3 && length(sys_val(:,1))==6
                      %          sys_vals{2}=['[',num2str(sys_val(1,1)),' ',num2str(sys_val(1,2)),' ',num2str(sys_val(1,3)),';',...
                      %              num2str(sys_val(2,1)),' ',num2str(sys_val(2,2)),' ',num2str(sys_val(2,3)),';',...
                      %              num2str(sys_val(3,1)),' ',num2str(sys_val(3,2)),' ',num2str(sys_val(3,3)),']; [',...
                      %              num2str(sys_val(4,1)),' ',num2str(sys_val(4,2)),' ',num2str(sys_val(4,3)),';',...
                      %              num2str(sys_val(5,1)),' ',num2str(sys_val(5,2)),' ',num2str(sys_val(5,3)),';',...
                      %              num2str(sys_val(6,1)),' ',num2str(sys_val(6,2)),' ',num2str(sys_val(6,3)),']'];
                                
                            elseif length(sys_val(1,:))==6 && length(sys_val(:,1))==3
                                sys_vals{2}=['[',num2str(sys_val(1,1)),' ',num2str(sys_val(1,2)),' ',num2str(sys_val(1,3)),';',...
                                    num2str(sys_val(2,1)),' ',num2str(sys_val(2,2)),' ',num2str(sys_val(2,3)),';',...
                                    num2str(sys_val(3,1)),' ',num2str(sys_val(3,2)),' ',num2str(sys_val(3,3)),'], [',...
                                    num2str(sys_val(1,4)),' ',num2str(sys_val(1,5)),' ',num2str(sys_val(1,6)),';',...
                                    num2str(sys_val(2,4)),' ',num2str(sys_val(2,5)),' ',num2str(sys_val(2,6)),';',...
                                    num2str(sys_val(3,4)),' ',num2str(sys_val(3,5)),' ',num2str(sys_val(3,6)),']'];
                            end
                            syslst_fil=[sys_vals(1),'=',sys_vals(2)];
                            syslst_new{j}=[syslst_fil{1},syslst_fil{2},syslst_fil{3}];
                        end
                    otherwise
                        syslst_new{j}=syslst{j};
                end
            end
            syslst=syslst_new;
        end
        
    end
    
    function [vary]=getvarys(~,varypars,t)
bruin
User
Posts: 27
Joined: Fri May 29, 2020 11:07 am

Re: cwEPR App for processing, simulating, and fitting CW EPR data

Post by bruin »

A fully working version of the cwEPR app compatible with the stable verson of EasySpin 6.0.0 can be downloaded here:

cwEPR_corrected2.m
(279.07 KiB) Downloaded 85 times

Copyright Information: See original download location

I do have a matlab app install file available for those interested, but those files apparently cannot be uploaded here.

This version solves the problems listed above (except perhaps for some remaining minor issues indicated by ErnestodeJesus).
Up to 10 hypferfine couplings can now be imported with " get esfit 'fit1' "

Note: Fitting with esfit only works with the fit gui enabled. Deactivating the fit gui leads to errors. I hope to find some some time to fix that later.

@Thomas: I hope you don't mind me sharing this compatibility-corrected version.

bruin
User
Posts: 27
Joined: Fri May 29, 2020 11:07 am

Re: cwEPR App for processing, simulating, and fitting CW EPR data

Post by bruin »

Small update:
It seems that the remaining problems occuring when with disabling the FitGUI are easy to solve:

  • Change line 4384
    [pars,app.data.fitspc,~]=esfit(spc(:,app.currslice), @app.custom_fittwomethods, {Sys, Exp, Opt}, {Vary}, FitOpt);
    into
    pars=esfit(spc(:,app.currslice), @app.custom_fittwomethods, {Sys, Exp, Opt}, {Vary}, FitOpt);

  • Change line 4391
    plot(app.UIAxes,xval,app.data.fitspc,'linewidth',app.slw,'color',app.sclr{1});
    into
    plot(app.UIAxes,xval,pars.fit,'linewidth',app.slw,'color',app.sclr{1});

  • Change line 4416
    [pars,app.data.fitspc(:,k),~]=esfit(spc(:,k),@app.custom_fittwomethods,{Sys,Exp,Opt}, {Vary}, FitOpt);
    into
    pars=esfit(spc(:,k),@app.custom_fittwomethods,{Sys,Exp,Opt}, {Vary}, FitOpt);

  • Change line 4423
    plot(app.UIAxes,xval,app.data.fitspc(:,k),'linewidth',app.slw,'color',app.sclr{1});...
    into
    plot(app.UIAxes,xval,pars.fit,'linewidth',app.slw,'color',app.sclr{1});...

  • Change line 4449
    [pars,fit_spc,~]=esfit(EXspc,@app.custom_fit2D,{Sys,Exp,Opt}, {Vary}, FitOpt);
    into
    pars=esfit(EXspc,@app.custom_fit2D,{Sys,Exp,Opt}, {Vary}, FitOpt);

  • Change line 4456
    app.data.fitspc=fit_spc(l:ll);
    into
    app.data.fitspc=pars.fit(l:ll);

Last edited by bruin on Wed May 15, 2024 5:58 am, edited 1 time in total.
bruin
User
Posts: 27
Joined: Fri May 29, 2020 11:07 am

Re: cwEPR App for processing, simulating, and fitting CW EPR data

Post by bruin »

Updated version, which now seems to be fully functional, also when disabling the esfit FitGUI:

cwEPR_corrected3.m
(279.2 KiB) Downloaded 107 times

I haven't tested fitting without the FitGUI extensively, but as far as I can judge right now everything works as intended.

jiten.phy
Newbie
Posts: 3
Joined: Thu Jan 18, 2018 9:06 am

Free relationships, easy and simple

Post by jiten.phy »

Discover the ultimate in relaxed romance with the best casual dating platform!
Discover the world of uninhibited dating.
Verified Ladies
Unsurpassed casual Dating

Post Reply