1. Limited time only! Sign up for a free 30min personal tutor trial with Chegg Tutors
    Dismiss Notice
Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Error in defined expression for Fresnel equation in matlab ( please )?

  1. Nov 1, 2012 #1
    error in defined expression for Fresnel equation in matlab (urgent please )??

    hi

    i have code for plotting Fresnel equation but there's something i didn't understand it and gives
    error >>(((

    plotopt - plotting option (type 'R' for plotting reflectivity,
    % 'A' for absorptivity or 'RA' for both)

    ))))

    any body can explain what should i do .. and how can i define (plotopt ) ??? thanks in advance !

    the total code ((


    thetadeg = (0:0.1:90);
    theta = thetadeg*pi/180;

    [a,b,c] = intrc(n1,n2,k2,theta);

    if nargin<4 || isempty(plotopt)
    fprintf('No plotting option specified. Type \''help fresnelplot\'' for further details.\n');
    return;
    end;
    if nargin==4
    if ischar(plotopt)
    switch plotopt
    case {'R','r'}
    plot(thetadeg,a,thetadeg,b,thetadeg,c)
    legend('Rs','Rp','R','Location','northwest');
    xlabel('Angle of incidence \theta');
    ylabel('Reflectivity');
    case {'A','a'}
    plot(thetadeg,1-a,thetadeg,1-b,thetadeg,1-c)
    legend('As','Ap','A','Location','northwest');
    xlabel('Angle of incidence \theta');
    ylabel('Absorptivity');
    case {'RA','ra','AR','ar'}
    subplot(2,1,1)
    plot(thetadeg,a,thetadeg,b,thetadeg,c)
    legend('Rs','Rp','R','Location','northwest');
    xlabel('Angle of incidence \theta');
    ylabel('Reflectivity');
    subplot(2,1,2)
    plot(thetadeg,1-a,thetadeg,1-b,thetadeg,1-c)
    legend('As','Ap','A','Location','northwest');
    xlabel('Angle of incidence \theta');
    ylabel('Absorptivity');
    otherwise
    fprintf('%s is not a valid option. Type \''help fresnelplot\'' for further details.\n',plotopt);
    end;
    else fprintf('Option must be a string. Type \''help fresnelplot\'' for further details.\n');
    end;
    end;
    ))
     
  2. jcsd
  3. Nov 1, 2012 #2

    Mark44

    Staff: Mentor

    Re: error in defined expression for Fresnel equation in matlab (urgent please )??

    It looks to me like the above is the body of a function with parameters for plotopt and nargin.

    Your code is using these values without ever having set them to known values.
     
  4. Nov 1, 2012 #3
    Re: error in defined expression for Fresnel equation in matlab (urgent please )??

    i am using matlab 2009 . and gives the error (( ??? Undefined function or variable 'plotopt'.))...
     
  5. Nov 2, 2012 #4

    Mark44

    Staff: Mentor

    Re: error in defined expression for Fresnel equation in matlab (urgent please )??

    That's what I'm saying. The code you show refers to plotopt (and nargin) and matlab doesn't know what these are.

    In post 1, you wrote "the total code". What you show is NOT the total code - it's missing a definition of plotopt.

    Where did you get this code?
     
  6. Nov 2, 2012 #5
  7. Nov 2, 2012 #6
    Re: error in defined expression for Fresnel equation in matlab (urgent please )??

    Your plotop is input from the user.
    type 'R' for plotting reflectivity,
    'A' for absorptivity
    or 'RA' for both
     
  8. Nov 2, 2012 #7
    Re: error in defined expression for Fresnel equation in matlab (urgent please )??

    how can i use this in code ?
     
  9. Nov 2, 2012 #8

    Mark44

    Staff: Mentor

    Re: error in defined expression for Fresnel equation in matlab (urgent please )??

    The link you gave was to an "m file", a file that defines a function that is called by other matlab code.

    Look in the matlab documentation for how to call a function that is defined in another file.

    The part that you left out in your post is shown below.

    Code (Text):

    function fresnelplot(n1,n2,k2,plotopt)
    %
    % fresnelplot(n1,n2,k2,plotopt)
    %
    % plots the Fresnel reflectivities and/or absorptivities (s-pol, p-pol
    % and circ.) for light incident from a dielectric medium with
    % refractive index n1 on an opaque absorbing medium with complex refractive
    % index n2+i*k2.
    %
    % Input:  n1      - refractive index (medium 1)
    %         n2      - refractive index (medium 2)
    %         k2      - extinction coefficient (medium 2)
    %         plotopt - plotting option (type 'R' for plotting reflectivity,
    %                   'A' for absorptivity or 'RA' for both)
    %
    % Output: plots of reflectivities and/or absorptivities
    %
    % Last updated: 2011-10-26 (David Bergström)
    %
     
     
  10. Nov 3, 2012 #9
    Re: error in defined expression for Fresnel equation in matlab (urgent please )??

    he says >>

    plotopt - plotting option (type 'R' for plotting reflectivity,
    'A' for absorptivity or 'RA' for both)

    ...

    i know about m-file already !. but there's no function called (plotting option ) .so the problem is how can i use this in matlab. what is the function should i use for ?
    on other hand there's no m-file attached , and i don't know the code for make a new one !
     
  11. Nov 3, 2012 #10

    Mark44

    Staff: Mentor

    Re: error in defined expression for Fresnel equation in matlab (urgent please )??

    plotopt is not a function. It is a parameter in the fresnelplot function.
    Open the link you posted (http://www.mysimlabs.com/matlab/auxiliary/fresnelplot.m ).
    Copy the code at this link into any editor (Notepad or whatever).
    Save to a file named fresnelplot.m in your matlab working directory.

    Your matlab code that uses the fresnelplot function should look something like this:
    Code (Text):

    n1 = input("Enter refractive index for medium 1")
    n2 = input("Enter refractive index for medium 2")
    k2 = input("Enter extinction coefficient for medium 2")
    plotopt = input("Enter plot option")

    fresnelplot(n1, n2, k2, plot)
    .
    .
    .
     
    For the plot option, you can enter R, A, RA, or AR.
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook




Similar Discussions: Error in defined expression for Fresnel equation in matlab ( please )?
  1. MATLAB errors (Replies: 4)

Loading...