怎么查看MATLAB函数的源代码

发布时间:2021-03-04 14:20:27 作者:小新
来源:亿速云 阅读:577

这篇文章主要介绍了怎么查看MATLAB函数的源代码,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

如何查看MATLAB函数的源代码

函数之  type

   假设需要查看function_name的源代码,在命令窗口中键入 type  function_name  

即:

>> type imread

function [X, map, alpha] = imread(varargin)
%IMREAD Read image from graphics file.
%   A = IMREAD(FILENAME,FMT) reads a grayscale or color image from the file
%   specified by the string FILENAME. If the file is not in the current
%   directory, or in a directory on the MATLAB path, specify the full
%   pathname.
%  
%   The text string FMT specifies the format of the file by its standard
%   file extension. For example, specify 'gif' for Graphics Interchange
%   Format files. To see a list of supported formats, with their file
%   extensions, use the IMFORMATS function. If IMREAD cannot find a file
%   named FILENAME, it looks for a file named FILENAME.FMT.
%
%   The return value A is an array containing the image data. If the file
%   contains a grayscale image, A is an M-by-N array. If the file contains
%   a truecolor image, A is an M-by-N-by-3 array. For TIFF files containing
%   color images that use the CMYK color space, A is an M-by-N-by-4 array.
%   See TIFF in the Format-Specific Information section for more
%   information.
%  
%   The class of A depends on the bits-per-sample of the image data,
%   rounded to the next byte boundary. For example, IMREAD returns 24-bit
%   color data as an array of uint8 data because the sample size for each
%   color component is 8 bits. See the Remarks section for a discussion of 
%   bitdepths, and see the Format-Specific Information section for more 
%   detail about supported bitdepths and sample sizes for a particular
%   format.
%   
%   [X,MAP] = IMREAD(FILENAME,FMT) reads the indexed image in FILENAME into
%   X and its associated colormap into MAP. Colormap values in the image
%   file are automatically rescaled into the range [0,1].
%
%   [...] = IMREAD(FILENAME) attempts to infer the format of the file
%   from its content.
%
%   [...] = IMREAD(URL,...) reads the image from an Internet URL. 
%   
%   Remarks
%   
%   Bitdepth is the number of bits used to represent each image pixel. 
%   Bitdepth is calculated by multiplying the bits-per-sample with the
%   samples-per-pixel. Thus, a format that uses 8-bits for each color
%   component (or sample) and three samples per pixel has a bitdepth of 24.
%   Sometimes the sample size associated with a bitdepth can be ambiguous:
%   does a 48-bit bitdepth represent six 8-bit samples or three 16-bit
%   samples? The following format-specific sections provide sample size
%   information to avoid this ambiguity.
%   
%   Format-Specific Information (Listed Alphabetically by Format)
%  
%   BMP  --  Windows Bitmap
%
%   Supported  Compression     Output  
%   Bitdepths  None    RLE     Class    Notes
%   ---------------------------------------------------------
%    1-bit      x        -     logical 
%    4-bit      x        x     uint8         
%    8-bit      x        x     uint8
%   16-bit      x        -     uint8    1 sample/pixel
%   24-bit      x        -     uint8    3 samples/pixel
%   32-bit      x        -     uint8    3 samples/pixel (1 byte padding)
%      
%   CUR  -- Cursor File

%   Supported    Compression      Output
%   Bitdepths   None Compressed   Class 
%   --------------------------------------------------
%   1-bit        x      -         logical
%   4-bit        x      -         uint8         
%   8-bit        x      -         uint8
%  
%   Special syntaxes:
%  
%   [...] = IMREAD(...,IDX) reads in one image from a multi-image icon or
%   cursor file. IDX is an integer value that specifies the order that the
%   image appears in the file. For example, if IDX is 3, IMREAD reads the
%   third image in the file. If you omit this argument, IMREAD reads the
%   first image in the file.
%
%   [A,MAP,ALPHA] = IMREAD(...) returns the AND mask for the resource,
%   which can be used to determine transparency information.  For cursor
%   files, this mask may contain the only useful data.   
%    
%   GIF  --  Graphics Interchange Format
%  
%   Supported     Compression        Output
%   Bitdepths    None  Compressed    Class 
%   ---------------------------------------------
%   1-bit         x        -         logical
%   2-to-8 bit    x        -         uint8  
%  
%   Special syntaxes:
%  
%   [...] = IMREAD(...,IDX) reads in one or more frames from a multiframe
%   (i.e., animated) GIF file. IDX must be an integer scalar or vector of
%   integer values.  For example, if IDX is 3, IMREAD reads the third image
%   in the file.  If IDX is 1:5, only the first five frames are returned.
%
%   [...] = IMREAD(...,'Frames',IDX) is the same as the syntax above except
%   that IDX can be 'all'.  In this case, all of the frames are read and
%   returned in the order that they appear in the file.
%
%   Note: Because of the way GIF files are structured, all of the frames
%   must be read when a particular frame is requested. Consequently, it is
%   much faster to specify a vector of frames or 'all' for IDX than to call
%   IMREAD in a loop when reading multiple frames from the same GIF file.
%  
%   HDF  --  Hierarchical Data Format
%    
%   Supported   Raster image   Raster image     Output
%   Bitdepths   with colormap  without colormap Class    Notes
%   ------------------------------------------------------------
%    8-bit        x               x             uint8
%   24-bit        -               x             uint8   3 samples/pixel
%  
%   Special Syntaxes:
%  
%   [...] = IMREAD(...,REF) reads in one image from a multi-image HDF file.
%   REF is an integer value that specifies the reference number used to
%   identify the image. For example, if REF is 12, IMREAD reads the image
%   whose reference number is 12. (Note that in an HDF file the reference
%   numbers do not necessarily correspond with the order of the images in
%   the file. You can use IMFINFO to match up image order with reference
%   number.) If you omit this argument, IMREAD reads the first image in
%   the file.
%    
%   ICO  -- Icon File
%  
%   See CUR.
%  
%   JPEG  --  Joint Photographic Experts Group
%  
%   Note: IMREAD can read any baseline JPEG image as well as JPEG images
%   with some commonly used extensions.
%  
%   Supported    Compression      Output
%   Bitdepths   Lossy Lossless    Class      Notes
%   --------------------------------------------------------
%    8-bit        x      x        uint8     Grayscale or RGB
%   12-bit        x      x        uint16    Grayscale 
%   16-bit        -      x        uint16    Grayscale
%   36-bit        x      x        uint16    RGB(Three 12-bit samples/pixel)
%
%   JPEG 2000 - Joint Photographic Experts Group 2000
%
%   Supported      Compression      Output
%   Bitdepths     Lossy Lossless    Class  
%   (per sample)
%   ----------------------------------------------------------
%    1-bit          x      x        logical
%    2- to 8-bit    x      x        uint8
%    9- to 16-bit   x      x        uint16
%
%   Note: Indexed JPEG 2000 images are not supported. Only JP2 compatible
%   color spaces are supported for JP2/JPX files. Arbitrary channels are
%   supported for raw codestream J2C files.
%
%   Special Syntaxes
%
%   [...] = IMREAD(..., 'Param1', value1, 'Param2', value2, ...) uses
%   parameter-value pairs to control the read operation. 
%
%       Parameter name   Value
%       --------------   -----
%       'ReductionLevel' A non-negative integer specifying reduction in 
%                        the resolution of the image. For a reduction
%                        level 'L', the image resolution is reduced by a
%                        factor of 2^L. Its default value is 0 implying
%                        no reduction. The reduction level is limited by
%                        the total number of decomposition levels as 
%                        provided by 'WaveletDecompositionLevels' field 
%                        in the structure returned from IMFINFO function.  
%
%       'PixelRegion'    {ROWS, COLS}.  IMREAD returns the sub-image
%                        specified by the boundaries in ROWS and COLS.
%                        ROWS and COLS must both be two-element vectors
%                        that denote the 1-based indices [START STOP]. If
%                        'ReductionLevel' is greater than 0, then ROWS and
%                        COLS are coordinates in the reduced-sized image.  
%
%       'V79Compatible'  A BOOL value. If true, image returned is color
%                        converted to gray-scale or RGB image as consistent
%                        with previous versions of IMREAD (MATLAB 7.9
%                        [R2009b] and earlier). Otherwise raw color
%                        image is returned. Default is false.
%
%
%   PBM  --  Portable Bitmap
%  
%   Supported  Raw     ASCII (Plain)  Output
%   Bitdepths  Binary  Encoded        Class
%   ----------------------------------------
%   1-bit        x        x          logical
%     
%   PCX  --  Windows Paintbrush

%   Supported     Output   
%   Bitdepths     Class       Notes
%   ----------------------------------------------
%    1-bit        logical     Grayscale only
%    8-bit        uint8       Grayscale or indexed
%   24-bit        uint8       RGB (8-bit samples)
%   
%   PGM  --  Portable Graymap
%       
%   Supported        Raw      ASCII (Plain)  Output       
%   Bitdepths        Binary   Encoded        Class
%   ------------------------------------------------
%   up to 16-bit      x            -         uint8
%   Arbitrary         -            x
%   
%   PNG  --  Portable Network Graphics
%  
%   Supported     Output   
%   Bitdepths     Class      Notes
%   -------------------------------------------
%    1-bit        logical    Grayscale only
%    2-bit        uint8      Grayscale only
%    4-bit        uint8      Grayscale only
%    8-bit        uint8      Grayscale or Indexed
%   16-bit        uint16     Grayscale or Indexed
%   24-bit        uint8      RGB (Three 8-bit samples/pixel)
%   48-bit        uint16     RGB (Three 16-bit samples/pixel)
%        
%   Special Syntaxes:
%  
%   [...] = IMREAD(...,'BackgroundColor',BG) composites any transparent
%   pixels in the input image against the color specified in BG.  If BG is
%   'none', then no compositing is performed. Otherwise, if the input image
%   is indexed, BG should be an integer in the range [1,P] where P is the
%   colormap length. If the input image is grayscale, BG should be an
%   integer in the range [0,1].  If the input image is RGB, BG should be a
%   three-element vector whose values are in the range [0,1]. The string
%   'BackgroundColor' may be abbreviated. 
%
%   If the ALPHA output argument is used (see below), then BG defaults to
%   'none' if not specified by the user. Otherwise, if the PNG file
%   ontains a background color chunk, that color is used as the default 
%   value for BG. If ALPHA is not used and the file does not contain a
%   background color chunk, then the default value for BG is 1 for indexed 
%   images; 0 for grayscale images; and [0 0 0] for RGB images. 
%
%   [A,MAP,ALPHA] = IMREAD(...) returns the alpha channel if one is
%   present; otherwise ALPHA is []. If 'BackgroundColor' is specified by
%   the user then ALPHA is []. Note that MAP may be empty if the file
%   contains a grayscale or truecolor image.   
%    
%   PPM  --  Portable Pixmap
%  
%   Supported        Raw      ASCII (Plain)  Output       
%   Bitdepths        Binary   Encoded        Class
%   ------------------------------------------------
%   up to 16-bit      x            -         uint8
%   Arbitrary         -            x    
%  
%   RAS  --  Sun Raster
%  
%   Supported    Output   
%   Bitdepths    Class     Notes
%   ----------------------------------------------------
%    1-bit       logical   Bitmap 
%    8-bit       uint8     Indexed
%   24-bit       uint8     RGB (8-bit samples)
%   32-bit       uint8     RGB with Alpha (8-bit samples)
%   
%   TIFF  --  Tagged Image File Format
%  
%   Supported     Compression                             Output    
%   Bitdepths None Packbits CCITT RGB ICCLAB CIELAB CMYK Class    Notes
%   -----------------------------------------------------------------------
%    1-bit     x      x       x    -    -      -     -   logical 
%    8-bit     x      x       -    -    -      -     -   uint8
%   12-bit     -      -       -    -    -      -     -   uint16  Grayscale
%                                                                or Indexed
%   16-bit     -      -       -    -    -      -     -   uint16  Grayscale
%                                                                or Indexed
%   24-bit     x      x       -    x    x      x     -   uint8   3 samples
%   32-bit     -      -       -    -    -      -     x   uint8   4 samples
%   36-bit     -      -       -    x    -      -     -   uint16  3 samples
%   48-bit     -      -       -    x    x      x     -   uint16  3 samples     
%   64-bit     -      -       -    -    -      -     x   double  4 samples
%  
%   NOTE: IMREAD supports 8-bit integral and 32-bit floating point tiled
%   TIFF images, with any compression and colorspace combination listed
%   above, and 32-bit IEEE floating point images.
%  
%   Special Syntaxes:
%  
%   A = IMREAD(...) returns color data that uses the RGB, CIELAB, ICCLAB,
%   or CMYK color spaces.  If the color image uses the CMYK color space, A
%   is an M-by-N-by-4 array.
%
%   [...] = IMREAD(..., 'Param1', value1, 'Param2', value2, ...) uses
%   parameter-value pairs to control the read operation.  There are three
%   different parameters you can use:
%
%       Parameter name   Value
%       --------------   -----
%       'Index'          A positive integer specifying which image to read in
%                        a multi-image TIFF file.  For example, if 'Index' is
%                        3, IMREAD reads the third image in the file.
%
%       'Info'           A structure array; the output of IMFINFO.  When
%                        reading images from a multi-image TIFF file, passing
%                        the output of IMFINFO as the 'Info' parameter helps
%                        IMREAD locate the images in the file more quickly.
%
%       'PixelRegion'    {ROWS, COLS}.  IMREAD returns the sub-image
%                        specified by the boundaries in ROWS and COLS.  ROWS
%                        and COLS must be either two- or three-element
%                        vectors.  If two elements are provided, they denote
%                        the 1-based indices [START STOP].  If three elements
%                        are provided, the indices [START INCREMENT STOP]
%                        allow image downsampling.
%  
%   XWD  --  X Window Dump
%  
%   Supported                                  Output   
%   Bitdepths  ZPixmaps  XYBitmaps  XYPixmaps  Class
%   --------------------------------------------------
%   1-bit        x          -         x        logical
%   8-bit        x          -         -        uint8
%
%   Please read the file libtiffcopyright.txt for more information.
%
%   Example:
%
%       imdata = imread('ngc6543a.jpg');
%
%   See also IMFINFO, IMWRITE, IMFORMATS, FREAD, IMAGE, DOUBLE, UINT8.

%   Copyright 1984-2011 The MathWorks, Inc.
%   $Revision: 1.1.6.22.4.1 $  $Date: 2012/07/02 18:58:54 $

[filename, fmt_s, extraArgs] = parse_inputs(varargin{:});

% Download remote file.
if (strfind(filename, '://'))
 
    url = true;
 
    if (~usejava('jvm'))
        error(message('MATLAB:imagesci:imread:noJava'))
    end
   
    try
        filename = urlwrite(filename, tempname);
    catch %#ok<*CTCH>
        error(message('MATLAB:imagesci:imread:readURL', filename));
    end
   
else
 
    url = false;

end

if (isempty(fmt_s))
    % The format was not specified explicitly.
   
    % Verify that the file exists.
    fid = fopen(filename, 'r');
    if (fid == -1)
     
        if ~isempty(dir(filename))
            error(message('MATLAB:imagesci:imread:fileReadPermission', filename));
        else
            error(message('MATLAB:imagesci:imread:fileDoesNotExist', filename));
        end

    else
        % File exists.  Get full filename.
        filename = fopen(fid);
        fclose(fid);
    end
   
    % Try to determine the file type.
    [format, fmt_s] = imftype(filename);

    if (isempty(format))
        error(message('MATLAB:imagesci:imread:fileFormat'));
    end
   
else
    % The format was specified explicitly.
   
    % Verify that the file exists.
    fid = fopen(filename, 'r');
    if (fid == -1)
        % Couldn't open using the given filename; search for a
        % file with an appropriate extension.
        for p = 1:length(fmt_s.ext)
            fid = fopen([filename '.' fmt_s.ext{p}]);
           
            if (fid ~= -1)
                % The file was found.  Don't continue searching.
                break
            end
        end
    end
   
    if (fid == -1)
        if ~isempty(dir(filename))
            error(message('MATLAB:imagesci:imread:fileReadPermission', filename));
        else
            error(message('MATLAB:imagesci:imread:fileDoesNotExist', filename));
        end
    else
        filename = fopen(fid);
        fclose(fid);
    end
   
end

if isempty(fmt_s)
    % Get format details.
    fmt_s = imformats(format);
end

% Verify that a read function exists
if (isempty(fmt_s.read))
    error(message('MATLAB:imagesci:imread:readFunctionRegistration', fmt_s.ext{ 1 }));
end

if ((fmt_s.alpha) && (nargout == 3))
 
    % Use the alpha channel.
    [X, map, alpha] = feval(fmt_s.read, filename, extraArgs{:});
   
else

    % Alpha channel is not requested or is not applicable.
    alpha = [];
    [X, map] = feval(fmt_s.read, filename, extraArgs{:});
   
end

% Delete temporary file from Internet download.
if (url)
    delete_download(filename);
end

%--------------------------------------------------------------------------
function delete_download(filename)

try
    delete(filename);
catch
    warning(message('MATLAB:imagesci:imread:tempFileDelete', filename))
end

%--------------------------------------------------------------------------
function [filename, fmt_s, extraArgs] = parse_inputs(varargin)

filename = '';
fmt_s = struct([]);
extraArgs = {};

% Parse arguments based on their number.
switch(nargin)
case 0

    % Not allowed.
    error(message('MATLAB:imagesci:imread:inputParsing'));
   
case 1

    % Filename only.
    filename = varargin{1};
    if ~ischar(filename)
        error(message('MATLAB:imagesci:imread:badImageSourceDatatype'));
    end
   
otherwise

    % Filename and format or other arguments.
    filename = varargin{1};
   
    % Check whether second argument is a format.
    if (ischar(varargin{2}))
        fmt_s = imformats(varargin{2});
    end
   
    if (~isempty(fmt_s))
        % The argument matches a format.
        extraArgs = varargin(3:end);
    else
        % The argument begins the format-specific parameters.
        extraArgs = varargin(2:end);
    end
   
end

>>

感谢你能够认真阅读完这篇文章,希望小编分享的“怎么查看MATLAB函数的源代码”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

推荐阅读:
  1. 网页中设置禁止查看源代码(保护源代码)
  2. 怎么查看网页源代码

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

上一篇:如何在C++项目中实现模板中的非类型参数

下一篇:C#中异步方法返回的void和Task有什么区别

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》