# Mandelbrot Set

In many ways, the Mandelbrot Set is similar to the Julia Sets we just discussed. ## Code

```function MandelbrotSet(r,w,makeVideo) % Draws a Mandelbrot Set with iterations r and resolution w. Set makeVideo % to 1 if you want to record a video.          if makeVideo==1          writerObj = VideoWriter('mandelbrotSet4.avi'); % Name it.          writerObj.FrameRate = 2;          writerObj.Quality=100;          open(writerObj)         end     % Create the real and imaginary parts of each number in a temporary     % variable     temp=zeros(w,w,2);     for i=1:w         temp(i,:,1)=linspace(-2,1,w);         temp(:,i,2)=linspace(-1.25,1.25,w);     end          % Set the initial values based on their real and imaginary components     values=zeros(w,w,2);     for i=1:w         for j=1:w             values(i,j,1)=temp(i,j,1)+1i*temp(i,j,2);         end     end          % Initialize the output     output=zeros(w,w);          % Create the figure     figure('Position',[100,100,1400,800],'Color',[0 0 0]);```

```    % For each iteration, cycle through data and perform the desired     % computatation     for i=1:r          for m=1:w             for k=1:w                 values(m,k,2)=(values(m,k,2))^2+values(m,k,1);                                  % Essentially, set output(m,k) equal to the current                 % iteration if the series diverges                 if abs(values(m,k,2))>10 && output(m,k)==0                     output(m,k)=i;                 end             end         end                  % Plot the data         clims=[0,r];         imagesc(output(:,:),clims);         colormap('hot');         axis off         if makeVideo==1             frame = getframe(1);             writeVideo(writerObj, frame)           end         pause(.001)     end        if makeVideo==1       for i=1:10          frame = getframe(1);          writeVideo(writerObj, frame)       end       close(writerObj)   end end```