khoshnaw
khoshnaw

Reputation: 53

using special characters in variable name Matlab

i have a function which returns a struct, and i want the return to have a meaningful names hence i wanted it to have names such as

sec.t<0.25

i.e t<0.25 being my variable and for this to return.

any help really appreciated.

function sec = sepfunc(intensdata)
lengthofdata=length(intensdata); 
count1=0;
count_2=0;
count_3=0;
count_4=0;
count_5=0;
count_6=0;
count_7=0;
count_8=0;
for i=  1:lengthofdata %loop to seperate count number of data in 5 groups 
    if (intensdata(i,1)<0.025)
        count1=count1+1;     
        elseif (intensdata(i,1)>=0.025 && intensdata(i,1)<0.05)
            count_2=count_2+1;
        elseif (0.05<=intensdata(i,1) && intensdata(i,1)<0.1)
            count_3=count_3+1;
        elseif (0.1<=intensdata(i,1) && intensdata(i,1)<0.125)
            count_4=count_4+1;     
        elseif (0.125<=intensdata(i,1) && intensdata(i,1)<0.15)
            count_5=count_5+1;
        elseif (0.15<=intensdata(i,1) && intensdata(i,1)<0.175)
            count_6=count_6+1;
        elseif (0.175<=intensdata(i,1) && intensdata(i,1)<0.2)
            count_7=count_7+1;
        elseif (intensdata(i,1)>=0.2 ) 
            count_8=count_8+1;
    end
 end
 disp(count1);
 disp(count_2);
 disp(count_3);
 disp(count_4);
 disp(count_5);
 disp(count_6);
 disp(count_7);
 disp(count_8);
 j=1;
 k=1;
 l=1;
 m=1;
 n=1;
 o=1;
 p=1;
 x=1;

 low_sec=[count1];
 lowmid_sec=[count_2];
 middle_sec=[count_3];
 upmid_sec=[count_4];
 upper_sec=[count_5]; 


 for i=  1:lengthofdata %to seperate original data into 5 different sub-groups. 
   if (intensdata(i,1)<0.05)
        low_sec(j,1)=intensdata(i,1);
        j=j+1 ;
    elseif(0.05<=intensdata(i,1) && intensdata(i,1)<0.1)       
        lowmid_sec(k,1)=intensdata(i,1);
        k=k+1;
    elseif(0.1<=intensdata(i,1) && intensdata(i,1)<0.15)       
        middle_sec(m,1)=intensdata(i,1);
        m=m+1;
    elseif(0.15<=intensdata(i,1) && intensdata(i,1)<0.2)       
        upmid_sec(n,1)=intensdata(i,1);
        n=n+1;
    elseif( intensdata(i,1)>=0.2)       
        upper_sec(x,1)=intensdata(i,1);
        x=x+1; 
   end

end

sec.low_sec = low_sec;
sec.lowmid_sec = lowmid_sec;
sec.middle_sec = middle_sec;
sec.upmid_sec = upmid_sec;
sec.upper_sec = upper_sec;

end

so i want to change low_sec to something like t<0.025 and 0.025

Upvotes: 1

Views: 321

Answers (2)

Dennis Jaheruddin
Dennis Jaheruddin

Reputation: 21563

As you cannot put unusual characters in variable names I can see two ways to do this:

  1. Descriptive: t_lt_0_025
  2. Via a struct: s.name='t<0.025'

Upvotes: 3

horchler
horchler

Reputation: 18484

You cannot do this. Quoting from The MathWorks guidelines on variable names:

A valid variable name starts with a letter, followed by letters, digits, or underscores.

The < character is an operator. Most other programming languages don't allow this either. A suggestion would be to use the function name for the < operator: lt (help lt).

Upvotes: 6

Related Questions