% Readme file for MATLAB.
% 31-Dec-1998
% 
% ========================
% What's new in MATLAB 5.3
% ========================
%
% Language changes
% ----------------
%  - The profiler has been enhanced to provide time for multiple m-files at
%    once.  The profiler report now is generated in HTML format.
%  - Improved support for integer types (uint8, int8, uint16, int16,
%    uint32, int32).  You can use the relational operators (<,>,==,...),
%    logical operators (&,|,~), SUM, and FWRITE with these datatypes.
%  - Support for two new file formats: PNG via IMREAD/IMWRITE and HDF-EOS
%    via HDF.
%  - Support for 16-bit tiff files.
%  - New overloadable functions (END, LOADOBJ, and SAVEOBJ).
%  - Quit now looks for and runs a script named FINISH if one exists (see
%    FINISHDLG, and FINISHSAV).
%  - Support for ActiveX objects on the PC (see ACTXCONTROL and ACTXSERVER).
%
% Handle Graphics changes
% -----------------------
%  - Support for 16-bit image display (IMAGE)
%  - Several new functions are available to plot mathematical functions:
%    ezcontour, ezcontourf, ezmesh, ezmeshc, ezplot3, 
%    ezpolar, ezsurf, ezsurfc, texlabel
%  - New ways of visualizing volumetric data: isosurfaces (ISOSURFACE),
%    cone plots (CONEPLOT), streamlines (STREAM2 and STREAM3).  See
%    VISSUITE for more info
%  - Toolbar on figure windows, including annotation, drag, resize,
%    zoom, and rotate tools
%  - Context menus and dialog boxes added for graphics objects
%  - New way added to safely store data on graphics objects without
%    destoying previously stored data, and without fear of your data
%    being destroyed by others:  ApplicationData, accessed through
%    SETAPPDATA, GETAPPDATA, RMAPPDATA.
%  - Support for flicker-free double-buffered animation using the
%    painter's renderer: set(gcf,'DoubleBuffering','on')
%  - FIG-files:  Improved, binary, single-file format for saving and
%    reloading figures.  Preserves handles stored in an object's
%    UserData or ApplicationData (if the handle is to another object
%    being saved into the same FIG-file) so they are still valid after
%    figure is reopened.  FIG-files are saved using SAVEAS, and
%    reopened using OPEN.  They can also be saved and reopened from
%    the "Save", "Save As...", and "Open..." items on the figure File
%    menu.  Finally, "print -dmfile" (which is retained for backwards
%    compatibility) produces a FIG-file, and an M-file function of the
%    same name, which opens the FIG-file when executed.
% -  BackgroundColor now supported for pushbutton uicontrols on the PC
% -  Support for changing display and/or visual of each figure on X
%    using the figure XDisplay, XVisual, and XVisualMode properties.
% -  RECTANGLE object added, for drawing rectangles, rounded-corner
%    rectangles, ellipses, and circles within 2-d axes.
% -  Root FixedWidthFontName property added; new FontName value
%    'fixedwidth' added, to specify a fixed-width font in a way that is
%    compatible with internationalization.
%
% Important new functionality
%   cellfun    - Functions on cell array contents.
%   pause      - Now accepts fractional pause times.
%   textread   - Read formatted data from text file.
%   str2double - Convert string to double precision value.
%   evalc      - Evaluate MATLAB expression with capture.
%   histc      - Fast histogram count.
%   
% Several functions were enhanced in 5.2
%   - pcg now accepts functions as arguments.
%   - legend now supports multiline strings and maintains its shape
%     during a resize or printing.
%   - dlmread is much faster (it uses TEXTREAD)
%   - hist is much faster (it uses HISTC)
%
% New functions (by directory)
%  datafun:   detrend, histc, var
%  datatypes: cellfun, int16, int32, int8, loadobj, saveobj, single,
%             uint16, uint32
%  elfun:     complex
%  elmat:     blkdiag
%  funfun:    fminbnd, fminsearch, icdae, icsedae, optimget, optimset, symvar
%  general:   helpview, miopeneditor, open, profreport, saveas, studio
%  graph2d:   scribeclearmode, scribeeventhandler, scribelinedlg, 
%             scriberestoresavefcns, scribetextdlg, texlabel
%  graph3d:   cameramenu, vga
%  graphics:  datachildren, getappdata, isappdata, opengl, parseparams, 
%             rectangle, rmappdata, setappdata
%  iofun:     hdfgd, hdfpt, hdfsw, prefdir, textread
%  lang:      evalc
%  matfun:    lsqnonneg
%  polyfun:   delaunayc, padecoef
%  specfun:   factorial
%  specgraph: coneplot, contourslice, ezcontour, ezcontourf, ezgraph3,
%             ezmesh, ezmeshc, ezplot3, ezpolar, ezsurf, ezsurfc, 
%             ind2rgb, isocaps, isonormals, isosurface, reducepatch,
%             reducevolume, shrinkfaces, smooth3, stream2, stream3, 
%             streamline, subvolume, surf2patch, vissuite
%  strfun:    str2double
%  uitools:   addpref, editmenufcn, filemenufcn, findfigs, getpref,
%             pagesetupdlg, rmpref, setpref, uiclearmode, uistack
%  winfun:    startmenu, winqueryreg
%
% Deleted:    actxctrl, actxder, actxget, actxinv, actxprop,
%             actxrel, actxset, actxsrv, mwsamp, sampev, miedit,
%             profsumm, makedraggable, fwhich


% ========================
% What's new in MATLAB 5.2
% ========================
%
% Language Changes
% ----------------
% In MATLAB 5.2 we added two new syntax elements
%    try, ..., catch, ..., end
% for improved error handling and
%    persistent varname
% to support function based "global" variables.  Both of these changes
% make it easier to build robust modular applications in MATLAB.
%
% Several functions were enhanced in 5.2
%   - lower, upper, strcmp, strrep, strncmp are faster
%   - load now has an output argument
%   - subsref and subsasgn are available for the built-in types.
%   - [ ] on N-D arrays is the same as CAT(1,...) or CAT(2,...)
%   - fft, fft2, fftn are faster
%   - unique, intersect, etc. now work on cell arrays of strings
%   - A new property on the root can be set to protect against
%     blowing the stack: set(0,'recursionLimit',Nframes).
%   - HDF was extended to handle the SD, VS, V, and AN interfaces.
%   - The intepolation functions (interp1,interp2,etc) now provide
%     support for the spline method.
%
% Important new functionality
%   lastwarn    - Last warning text
%   mkdir       - Make directory or folder
%   gsvd        - Generalized SVD
%   strcmpi     - Case insensitive string compare
%   actxcontrol - Support for ActiveX objects (PC only)
%   getvidframe - Video capture (MAC only)
%
% Handle Graphics changes
% -----------------------
%  - New camera and light convenience functions (see GRAPH3D)
%  - New OPENGL renderer: set(gcf,'renderer','opengl')
%  - Images on buttons 
%  - New contextmenu object
%  - Tooltips for uicontrols
%  - Beta version of plot editing tools (see PLOTEDIT)
%  - New Units, 'characters', for specifying GUI layout, enabling GUIs
%    designed on one platform to look consistent on other platforms,
%    regardless of differences in screen size, resolution, or system
%    font.
%
% New functions (by directory)
%  MacOS:     getvidframe
%  datafun:   ifftshift
%  datatypes: substruct
%  funfun:    ntrp23t, ntrp23tb, ode23t, ode23tb
%  general:   copyfile, maedispsubarray, maesize, matlabpath, mauifunc,
%             mkdir, regedit
%  graph2d:   dokeypress,domymenu,doresize,enddrag,getobj,makedraggable,
%             middrag, plotedit, prepdrag, putdowntext, scribeaxesdlg,
%             scribetoolbar
%  graph3d:   camdolly, camlight, camlookat, camorbit, campan, campos,
%             camproj, camroll, camtarget, camup, camva, camzoom, daspect,
%             lightangle, objbounds, pbaspect, xlim, ylim, zlim
%  graphics:  handle2struct, struct2handle, uicontextmenu
%  iofun:     hdfan, hdfdf24, hdfdfr8, hdfh, hdfhd, hdfhe, hdfml, hdfsd, hdfv,
%             hdfvf, hdfvh, hdfvs, hgload, hgsave
%  lang:      catch, lastwarn, mislocked, mlock, munlock, persistent, try
%  matfun:    cholupdate, gsvd, qrupdate
%  polyfun:   mpoles, splncore
%  strfun:    strcmpi, strncmpi
%  uitools:   uirestore, uisuspend
%  winfun:    actxcontrol, actxserver, mwsamp, sampev
%
% Deleted: whichcls, maeasgn

% ========================
% What's new in MATLAB 5.1
% ========================
%
% New functions (by directory)
%  MacOS:     aprint
%  funfun:    vectorize
%  general:   miedit, miolereg,  openvar, prepender
%  graphics:  noanimate
%  graph3d:   vrml
%  specgraph: scatter, scatter3
%  iofun:     fileparts
%  timefun:   dvcore
%  uitools:   findall
%
% Deleted: editarray, pathedit
% 
% ========================
% What's new in MATLAB 5.0
% ========================
% 
% MATLAB 5.0 marks the introduction of non-double-precision types into
% the MATLAB language.  Building on the success of sparse matrices,
% we've added structures and cell arrays into the language.  These
% new types don't interfere with the matrix orientation of MATLAB
% (your v4.x m-files run just fine), instead they enhance it.  The
% structure and cell arrays allow you to group your data together and
% manipulate them in ways not available in previous versions of
% MATLAB. The syntax
% 
%    dat.name = 'Steve'
%    dat.address = '123 High Street'
%    dat.city = 'Natick, MA'
% 
% is an example of structure syntax (producing the 1-by-1 structure
% array 'dat'). The syntax
% 
%    magics = {magic(3) magic(4) magic(5)}
% 
% is an example of cell array syntax (producing the 1-by-3 cell array
% 'magics'). You extract a single component using the syntax
% 
%    m4 = magics{2};
% 
% so that m4 is magic(4).  You can also manipulate groups of cells
% using familiar subscripting expressions.  For instance
% 
%    subm = magics(1:2);
%    
% produces a 1-by-2 cell array containing the first two cells of magics.
% 
% MATLAB 5.0 also extends matrices into more dimensions.  It is now
% possible to create arrays with an arbitrary number of subscripts. 
% All the arrays except sparse matrices (character arrays, double
% precision arrays, cell arrays, and structure arrays) can have more
% than two dimensions.  Suppose A is a 3-by-3-by-10 array containing
% ten 3-by-3 matices, then the syntax
% 
%    for i=1:10
%      E(:,i) = eig(A(:,:,i));
%    end
% 
% computes the eigenvalues of each of the 3-by-3 matrices and stores
% the result in E.
% 
% MATLAB 5.0 also lets you define your own types with their own
% behavior via MATLAB 5's Object Oriented Programming Model.  You
% create your own object type via the CLASS function and provide
% m-files to implement the methods (or behaviors) of your object.
% Support is provided to overload most of the syntax of MATLAB and to
% overload any function.  You can inherit from other objects and
% control the precedence of your object relative to other objects in
% your workspace (See the Using MATLAB for details).  The inline
% function object, INLINE, is a example of such an object.
% 
% ===============
%  New Features
% ===============
% 
% MATLAB 5.0 contains several new features you will find helpful when
% writing or debugging m-files.
% 
% First, MATLAB 5.0 provides support for an arbitrary number of input
% or output arguments via the special VARARGIN and VARARGOUT
% variables. The variables are cell arrays that contain the input or
% output values (type REPMAT.M for an example usage).
% 
% Second, MATLAB 5.0 has an integrated m-file profiler.  With the
% profiler, you will be able to quickly and accurately determine the
% execution time for each line of your m-file (see PROFILE).
% 
% Third, we've introduced the special function "END" which can be used
% within a subscript to denote the maximum possible value for that
% subscript. No longer do you have to write A(1:size(A,1)-1,:),
% instead you can write A(1:end-1,:).
% 
% Fourth, we've added a SWITCH statement to simplify complicated case
% parsing.
% 
%     switch opt
%       case 1
%          % Do case 1
%       case {2,3}
%          % Do case 2 or 3
%       otherwise
%          % Do error case
%     end
%     
% Fifth, we now support early return IF statements.  This means
% statements like
% 
%   if nargin>=3 & ischar(arg3)
%      % Do parsing
%   end
%   
% won't execute 'ischar(arg3)' if nargin is less than 3.  In
% otherwords, you can now protect your if-statements so that they
% don't error out when variables don't exist or when indices might go
% out of range.
% 
% Sixth, we've expanded scalar expansion so that expressions like
% A(1:10,:) = 5*ones(10,5) can now be written as A(1:10,:) = 5.
% 
% Seventh, we've improved the parser to warn if it detects
% uninitialized variables, re-declared globals, non-integer
% subscripts, and other common programming mistakes.
% 
% Eighth, we've introduced a warning function you can use to emit
% warnings from your functions.  You can also turn off warnings if
% you so desire (see WARNING).
% 
% Ninth, you can now precompile your m-files to avoid the compilation
% time.  This really helps for GUI's and reduces their startup time
% too (see PCODE).
% 
% Tenth, to help you hide your helper functions from the command line
% and prevent collisions from using the same file name more than once,
% we've introduced two new features: private directories (functions
% in a private directory can only be accessed by the m-files in the
% directory above it), and multi-function m-files (you can include
% subfunctions that your m-file depends on within the same file).
% 
% Eleventh, we've added support for rectangular empty matrices.  You
% can now produce empty matrices that are 5-by-0 or 0-by-4.  These
% matrices are propogated through most operations and produce a
% sensible result.  For instance, multiplying a 5-by-0 matrix by a
% 0-by-4 one produces a 5-by-4 matrix of zeros.  See the Using MATLAB
% for details.
%
% Twelfth, we've changed the graphics defaults to produce plots with
% better color contrast and more emphasis on your data rather than the
% annotation.  This is controlled by the new functon COLORDEF that is
% used in MATLABRC.  You can override the defaults if you desire by
% choosing a different default in your own STARTUP.M.
%
% ==================================
%  New Handle Graphics Capabilities
% ==================================
%
% In MATLAB 5 has several enhancements to the graphics.
%
% First, we've vectorized the GET and SET commands so you can get or
% set several properties on several graphics objects at once.
%
% Second, we've added a Z Buffer based rendering mode.  This mode
% allows you to correctly draw surfaces or polygons that intersect.
% The polygon-based algorithm that was used in MATLAB 4 had problems
% with such surfaces.  The Z Buffer rendering mode also supports
% lighting models (see LIGHT, MATERIAL, LIGHTING).
%
% Third, we now support multi-line text.  In addition, the text object
% also supports a small subset of TeX allowing you to produce
% annotations that include greek letters, subscripts and superscripts.
%
% Fourth, we improved the control over the graphics view via
% manipulation of a virtual camera (See Using MATLAB Graphics).
% Using the new axes properties, you can produce realistic perspective
% and fly-by's of your data.
%
% Fifth, we added an a listbox to the set of UICONTROLS.  This makes
% it possible to produce dialog boxes that contain a list of items to
% chosen.  You can control how many items can be chosen and whether
% they must be contiguous or not.
%
% Sixth, we now support modal dialog boxes.  Using the UIWAIT and
% UIRESUME functions, you can now block execution of your m-files
% until the model dialog is closed.
%
% Seventh, using the new HiddenHandle properties and IntegerHandle
% properties it is now easier to create GUI's that are protected
% against accidental closure and other effects.
%
% Eighth, 24-bit color images, surfaces and patches are now supported.
%
% ==================
%  New Capabilities 
% ==================
% 
% MATLAB 5.0 also contains many new analysis and graphics capabilities
% that you can build on to solve your problems.
% 
% Delaunay triangulation -- This set of functions is the backbone
% of our new and improved GRIDDATA but is important in its own right
% for mesh generation and graph searching (see DATAFUN).
% 
% Bit-wise math -- This set of functions allow you to do integer bit
% manipulation within the double precision world of MATLAB (see OPS).
% 
% Set manipulation -- This set of routines allow you to manipulate
% sets of numbers and find such things as the intersection, union,
% and difference (see OPS).
% 
% ODE suite -- This set of functions improves MATLAB's ability to
% solve ordinary differential equations.  Both stiff and non-stiff
% problems can be solved easily (see FUNFUN).
% 
% More plots -- Examples include area, ribbon, 3-D bar, pareto, pie,
% 3-D pie, 3-D quiver, triangular meshes, and filled contours (see
% GRAPH2D, and GRAPH3D).
% 
% More colormaps -- You now have more predefined colormaps to choose
% from (see GRAPH3D).
% 
% Date and time functions -- This set of routines defines the MATLAB
% date number and provides a number of routines to manipulate and
% display date information (see TIMEFUN).
% 
% String arrays -- A new data construct, the cell array of strings,
% is supported via several new functions and provides a convenient
% way to manipulate strings of different lengths without having to
% pad them (see STRFUN).
% 
% N-D interpolation -- both 3-D and N-D interpolation are available
% (see POLYFUN).
% 
% ===============
%  New Functions
% ===============
% 
% Most functions have been enhanced to support N-D arrays and many
% functions have been added to support the new types.  Below is a
% comprehensive list of functions added for MATLAB 5.0.
% 
% New Functions (by directory)
% datafun:   convn, cumtrapz, fftn, ifftn, playsnd, sortrows, soundsc.
% datatypes: cat, cell, cell2struct, celldisp, cellplot, class, deal,
%            double, fieldnames, getfield, inferiorto, ipermute, isa, iscell,
%            isfield, isobject, isstruct, methods, ndgrid, num2cell, permute,
%            rmfield, setfield, shiftdim, squeeze, struct, struct2cell, 
%            superiorto, uint8.
% elfun:     mod.
% elmat:     flipdim, freqspace, ind2sub, isequal, isfinite, islogical,
%            isnumeric, logical, ndims, repmat, sub2ind.
% funfun:    colgroup, dblquad, fcnchk, innerlp, ntrp113, ntrp15s, ntrp23,
%            ntrp23s, ntrp45, numjac, ode113, ode15s, ode23s, odefile, odeget,
%            odephas2, odephas3, odeplot, odeprint, odeset, odezero.
% general:   addpath, dbmex, edit, editarray, editpath, exit, genpath, 
%            helpdesk, helpinfo, helpwin, inmem, isppc, maeasgn, maeresize,
%            mauifindexe, mdbstatus, mex, miport, mipc, nnload, notebook,
%            path2rc, pathedit, pathtool, pcode, profile, profsumm, rmpath,
%            web, workspace.
% graph2d:   box, plotyy.
% graph3d:   autumn, colorcube, lighting, lines, material, rotate3d,
%            spring, summer, winter.
% graphics:  bwcontr, closereq, copyobj, gcbf, gcbo, ishandle, light,
%            nodither, savtoner.
% iofun:     filesep, fullfile, hdf, imfinfo, mexext, partialpath, pathsep.
% lang:      assignin, builtin, case, errortrap, evalin, inputname, lists,
%            mfilename, otherwise, run, switch, varargin, varargout, warning.
% matfun:    condeig.
% ops:       and, bitand, bitcmp, bitget, bitmax, bitor, bitset, bitshift,
%            bitxor, ctranspose, eq, ge, gt, horzcat, intersect, ismember, 
%            ldivide, le, lt, minus, mldivide, mpower, mrdivide, mtimes, ne,
%            not, or, plus, power, rdivide, setdiff, setxor, subsasgn, 
%            subsindex, subsref, times, transpose, uminus, union, unique, 
%            uplus, vertcat.
% polyfun:   abcdchk, automesh, convhull, delaunay, dsearch, inpolygon,
%            interp1q, interpn, polyarea, rectint, ss2tf, ss2zp, tf2ss, tf2zp,
%            tfchk, tsearch, tzero, xychk, xyzvchk, zp2ss, zp2tf.
% sparfun:   bicg, bicgstab, cgs, cholinc, eigs, gmres, luinc, pcg, qmr,
%            sprand, svds.
% specfun:   airy, besschk, besselh, factor, isprime, nchoosek, perms, primes.
% specgraph: area, bar3, bar3h, barh, contourf, contours, ezplot,
%            frame2im, im2frame, makebars, pareto, pie, pie3, plotmatrix,
%            quiver3, ribbon, stem3, trimesh, trisurf, voronoi.
% strfun:    base2dec, bin2dec, cellstr, char, dec2base, dec2bin,
%            iscellstr, ischar, strcat, strjust, strmatch, strncmp, strvcat.
% timefun:   calendar, datenum, datestr, datetick, datevec, eomday, now,
%            weekday.
% uitools:   align, allchild, axlimdlg, btndown, btngroup, btnicon,
%            btnpress, btnstate, btnup, cbedit, clruprop, ctlpanel, dragrect,
%            edtext, extent, fignamer, getptr, getstatus, getuprop, 
%            guide, hidegui, htpp, icondisp, inputdlg, isdir, listdlg,
%            loadhtml, makemenu, matq2ws, matqdlg, matqparse, matqueue, 
%            menubar, menuedit, menulabel, msgbox, overobj, pagedlg, popupstr,
%            printdlg, printmenu, propedit, remapfig, selectmoveresize, 
%            setptr, setstatus, setuprop, tabdlg, textwrap, uiresume, uiwait,
%            umtoggle, waitbar, waitfor, winmenu, ws2matq
% funfun/@inline: argnames, cat, char, disp, display, feval, formula,
%            horzcat, inline, nargin, nargout.
% MacOS (Macintosh only): acopy, amove, applescript, arename, areveal,
%            gestalt, macurl, qtwrite, readsnd, recordsound, soundcap, speak,
%            writesnd, xlgetrange, xlsetrange.
%
% Deleted:   version, ode23p, quad8stp, quadstp, acsl, cedit, hostid,
%            inquire, blt, cinvert, dc2sc, graymon, meta, sc2dc, swapprev, 
%            terminal, uiguide, whitebg, finite, polyline, polymark, playsound,
%            ellipk, inverf, isstr, setstr.
% 
% See the HELP for each function or directory to get more information.
%
% ======================
%  Improved functions
% ======================
% 
% griddata -- Now supports triangle based nearest, linear, and cubic
%             interpolation. 
% slice    -- Now supports arbitrary slicing surface.
% contour  -- Now supports parametric surfaces.
% clabel   -- Now supports rotated and inserted labels.
% bar      -- Now supports multiple filled bars in grouped and stacked formats.
% max,min  -- Now ignores NaN's in the data.
% gallery  -- Lots of new test matrices.
% funfun   -- Most functions support an arbitrary number of input arguments.
% graph2d  -- Most functions support matrix inputs.
% graph3d  -- New graphics defaults to enhance visualization of your data.

%   Copyright (c) 1984-98 by The MathWorks, Inc.
%   $Revision: 5.43 $  $Date: 1998/12/31 21:20:44 $
