// 08.09.26 // 09.09.21 // 09.09.26 // 09.10.01 // 09.10.03 // 09.10.05 // 09.10.08 // 09.10.09 ( format=20) // 09.10.15 ( added Assign('') : reset // 09.10.17 ( Matrix added, ? -> number returned) // 09.10.21 ( list supported with Makeliststr ) // 14.10.04 format=12 // 14.12.11 only replaced when variable name // 14.12.28 debugged ( tmp2, ` ) // 15.02.18 debugged ( for list of string ) // 15.02.19 debugged // 15.04.18 debugged function Out=Assign(varargin) global ASSIGNLIST; Curfmt=format(); format(12); // 14.10.04 Nargs=length(varargin); if Nargs==0 ASSIGNLIST=list('`',Prime()); Out=ASSIGNLIST; format(Curfmt(2)); return; end; L=list('`',char(39)); NL=length(L); if modulo(Nargs,2)==0 for I=1:Nargs L(I+NL)=varargin(I); end; ASSIGNLIST=L; Out=L; format(Curfmt(2)); return; end; if Nargs==1 Fnstr=varargin(1); if Fnstr=='' L=ASSIGNLIST; Out=[]; for I=1:2:length(L) Tmp1=L(I); Tmp2=L(I+1); if length(Tmp2)==1 Tmp3=string(Tmp2); else Tmp3='['; for J=1:length(Tmp2) Tmp3=Tmp3+string(Tmp2(J)); if J1 // 15.04.18 for K=1:length(Val) Tmp=Vname+'('+string(K)+')'; if mtlb_findstr(Tmp3,Tmp)~=[] if type(Val(K))==1 Tmp1='('+string(Val(K))+')'; else Tmp1=Val(K); end; Tmp3=strsubst(Tmp3,Tmp,Tmp1); end; end; else for J=1:size(Val,1) for K=1:size(Val,2) Tmp=Vname+'('+string(J)+','+string(K)+')'; if mtlb_findstr(Tmp3,Tmp)~=[] if type(Val(J,K))==1 Tmp1='('+string(Val(J,K))+')'; else Tmp1=Val(J,K); end; Tmp3=strsubst(Tmp3,Tmp,Tmp1); end; end; end; end; if length(Val)==1 Rep=string(Val); else Rep='['; for J=1:size(Val,1) for K=1:size(Val,2) Rep=Rep+string(Val(J,K)); if K0 then Flist=mtlb_findstr(Tmp2,Vname); else Flist=[]; end if length(Flist)==0 then Tmp3(K)=Tmp2; // 15.04.18 continue end Str=part(Tmp2,1:(Flist(1)-1)); for I=1:length(Flist) Flg=0; J=Flist(I); if J>1 then Tmp=ascii(part(Tmp2,J-1)); if Member(Tmp,Notvar) then Flg=1; end; end if J+length(Vname)-1