[Master Index] [Index for PublicToolbox/regutools]

# plot_lc

## (PublicToolbox/regutools/plot_lc.m in BrainStorm 2.0 (Alpha))

### Function Synopsis

    plot_lc(rho,eta,marker,ps,reg_param)

### Help Text

    PLOT_LC Plot the L-curve.

     plot_lc(rho,eta,marker,ps,reg_param)

     Plots the L-shaped curve of the solution norm
        eta = || x ||      if   ps = 1
        eta = || L x ||    if   ps = 2
     as a function of the residual norm rho = || A x - b ||.  If ps is
     not specified, the value ps = 1 is assumed.

     The text string marker is used as marker.  If marker is not
     specified, the marker '-' is used.

     If a fifth argument reg_param is present, holding the regularization
     parameters corresponding to rho and eta, then some points on the
     L-curve are identified by their corresponding parameter.

### Cross-Reference Information

This function is called by

    l_curve                            C:\BrainStorm_2001\PublicToolbox\regutools\l_curve.m
    regudemo                           C:\BrainStorm_2001\PublicToolbox\regutools\regudemo.m

### Listing of function C:\BrainStorm_2001\PublicToolbox\regutools\plot_lc.m

    function plot_lc(rho,eta,marker,ps,reg_param)
    %PLOT_LC Plot the L-curve.
    %
    % plot_lc(rho,eta,marker,ps,reg_param)
    %
    % Plots the L-shaped curve of the solution norm
    %    eta = || x ||      if   ps = 1
    %    eta = || L x ||    if   ps = 2
    % as a function of the residual norm rho = || A x - b ||.  If ps is
    % not specified, the value ps = 1 is assumed.
    %
    % The text string marker is used as marker.  If marker is not
    % specified, the marker '-' is used.
    %
    % If a fifth argument reg_param is present, holding the regularization
    % parameters corresponding to rho and eta, then some points on the
    % L-curve are identified by their corresponding parameter.

    % Per Christian Hansen, UNI-C, 03/17/93.

    % Set defaults.
    if (nargin==2), marker = '-'; end  % Default marker.
    if (nargin < 4), ps = 1; end       % Std. form is default.
    np = 10;                           % Number of identified points.

    % Initialization.
    if (ps < 1 | ps > 2), error('Illegal value of ps'), end
    n = length(rho); ni = round(n/np);

    % Make plot.
    if (max(eta)/min(eta) > 10 | max(rho)/min(rho) > 10)
      if (nargin < 5)
        loglog(rho,eta,marker)
      else
        loglog(rho,eta,marker,rho(ni:ni:n),eta(ni:ni:n),'x')
        HoldState = ishold; hold on;
        for k = ni:ni:n
          text(rho(k),eta(k),num2str(reg_param(k)));
        end
        if (~HoldState), hold off; end
      end
    else
      if (nargin < 5)
        plot(rho,eta,marker)
      else
        plot(rho,eta,marker,rho(ni:ni:n),eta(ni:ni:n),'x')
        HoldState = ishold; hold on;
        for k = ni:ni:n
          text(rho(k),eta(k),num2str(reg_param(k)));
        end
        if (~HoldState), hold off; end
      end
    end
    xlabel('residual norm || A x - b ||')
    if (ps==1)
      ylabel('solution norm || x ||')
    else
      ylabel('solution semi-norm || L x ||')
    end
    title('L-curve')

Produced by color_mat2html, a customized BrainStorm 2.0 (Alpha) version of mat2html on Tue Oct 12 12:05:14 2004
Cross-Directory links are: ON