Page 6 of 6

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

Posted: Tue May 14, 2024 5:18 am
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)

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

Posted: Tue May 14, 2024 5:40 am
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 107 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.


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

Posted: Wed May 15, 2024 5:13 am
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);


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

Posted: Wed May 15, 2024 5:17 am
by bruin

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

cwEPR_corrected3.m
(279.2 KiB) Downloaded 126 times

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


Free relationships, easy and simple

Posted: Wed May 22, 2024 6:33 pm
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