Answer:
function out=circular_primes(no)
prim=primes(no);% find the all prime number till the given number
pr=0;
nos=[];
po=[];
for p=1:length(prim)
    n=prim(p); % picking up each prime no one by one
    n=num2str(n);% change into string for rotation of no
    d=length(n); % length of string
    if d>1          % take nos greater than 10 beacuase below 10 no need for rotation
        for h=1:d
            a=n(1);
            for r=1:d % for rotation right to left
                if r==d  5 % for the last element of string
                    n(d)=a;
                else
                n(r)=n(r+1); %shifting
                end
            end
            
        s=str2num(n); % string to number
        nos=[nos,s]; % store rotated elements in array
        end
        if nos(end)==no   %if given no is also a circular prime we need smaller
            break;
        end
        for gr=1:length(nos) % checking rotated nos are prime or not
            p1=isprime(nos(gr));
            po=[po,p1];    %storing logical result in array
        end
            if sum(po(:))==length(nos) %if all are prime the length and sum are must be equal
                
                pr=pr+1;
                out=pr;
            else
                out=pr;
            end
        po=[];
        nos=[];
    else  
        s=str2num(n); %numbers less than 10
        f=isprime(s);
        if f==1
            pr=pr+1;
            out=pr;
        else
            out=pr;
        end
    end
        
       end
end
Explanation: