Problem with Generating Barnsley Fern Fractal in MATLAB

  • Context: MATLAB 
  • Thread starter Thread starter Euler2718
  • Start date Start date
  • Tags Tags
    Fractal Matlab
Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
3 replies · 3K views
Euler2718
Messages
90
Reaction score
3
The code is as followed:

Matlab:
function fern()

AI = [0  0 ; 0 0.16];
  
AII = [ 0.85  0.04 ; -0.04 -0.85 ] ;
  
AIII = [ 0.2  -0.26 ; 0.23 0.22 ] ;
  
AIV = [-0.15  0.28 ; 0.26 0.24 ];BI = [ 0 ; 0];
BII = [ 0 ; 1.6];
BIII = [ 0 ; 1.6];
BIV = [0 ; 0.44];

N = 10000;
I = 50;

H = zeros(N,2);

for n=1 : N
  
    x = rand;
    y = rand;
    T = [x;y];
 
  
    for i=1 : I
      
        p = rand;
      
        if p < 0.01
            %disp('Scheme 1')
            S1x = AI*T + BI;
            S1y = AI*T + BI;
            x = S1x(1);
            y = S1y(2);
        elseif p < 0.08
            %disp('Scheme 2')
            S2x = AII*T + BII;
            S2y = AII*T + BII;
            x = S2x(1);
            y = S2y(2);
        elseif p < 0.15
            %disp('Scheme 3')
            S3x = AIII*T + BII;
            S3y = AIII*T + BII;
            x = S3x(1);
            y = S3y(2);
        else
            %disp('Scheme 4')
            S4x = AIV*T + BIV;
            S4y = AIV*T + BIV;
            x = S4x(1);
            y = S4y(2);
        end
        H(n,1) = x;
        H(n,2) = y;
    end
end

X = H(:,1);
Y = H(:,2);
plot(X,Y,'.')

I have no idea why it isn't working. Is not the iterative process correct? I ran it once and got the picture below. I'm at the end of the road here, and on a deadline, any help would be appreciated.

Screenshot_2016-09-21_20-49-37.png
 
Last edited by a moderator:
Physics news on Phys.org
How can I copy your code to MATLAB? When I simply copied and pasted, it put your whole program as one single line in MATLAB, then added a URL reference link below it.
 
Image Analyst said:
How can I copy your code to MATLAB? When I simply copied and pasted, it put your whole program as one single line in MATLAB, then added a URL reference link below it.

Try copying to another editor that recognizes newline chars as line separators and will then save to the windows crlf format (carriage return/linefeed line terminator).

This is a common problem when moving text from unix to windows and vice versa (in which case you'll see every other line as a blank line)