This is a static copy of a profile report

Home

fullfile (Calls: 1518, Time: 0.272 s)
Generated 18-Jul-2020 08:10:33 using performance time.
function in file /Applications/MATLAB_R2020a.app/toolbox/matlab/iofun/fullfile.m
Copy to new window for comparing multiple runs

Parents (calling functions)

Function NameFunction TypeCalls
genpathfunction1518
Lines where the most time was spent

Line NumberCodeCallsTotal Time% TimeTime Plot
100
f = refinePath(f,fileSeparator...
15180.052 s19.0%
88
theInputs{1} = ensureTrailingF...
15180.051 s18.9%
91
theInputs(2,:) = {fileSeparato...
15180.041 s15.0%
84
theInputs(cellfun('isempty', t...
15180.032 s11.9%
97
f = [theInputs{:}];
15180.022 s8.2%
All other lines  0.073 s27.0%
Totals  0.272 s100% 
Children (called functions)

Function NameFunction TypeCallsTotal Time% TimeTime Plot
fullfile>refinePathsubfunction15180.043 s15.8%
fullfile>ensureTrailingFilesepsubfunction15180.038 s14.1%
Self time (built-ins, overhead, etc.)  0.190 s70.1%
Totals  0.272 s100% 
Code Analyzer results
No Code Analyzer messages.
Coverage results
Show coverage for parent directory
Total lines in function109
Non-code lines (comments, blank lines)53
Code lines (lines that can run)56
Code lines that did run41
Code lines that did not run15
Coverage (did run/can run)73.21 %
Function listing
time 
Calls 
 line
   1 
function f = fullfile(varargin)
   2 
%FULLFILE Build full file name from parts.
   3 
%   F = fullfile(FOLDERNAME1, FOLDERNAME2, ..., FILENAME) builds a full
   4 
%   file specification F from the folders and file name specified. Input
   5 
%   arguments FOLDERNAME1, FOLDERNAME2, etc. and FILENAME can be strings,
   6 
%   character vectors, or cell arrays of character vectors. Non-scalar
   7 
%   strings and cell arrays of character vectors must all be the same size.
   8 
%
   9 
%   If any input is a string array, F is a string array. Otherwise, if any
  10 
%   input is a cell array, F is a cell array.  Otherwise, F is a character
  11 
%   array.
  12 
%
  13 
%   The output of FULLFILE is conceptually equivalent to character vector
  14 
%   horzcat operation:
  15 
%
  16 
%      F = [FOLDERNAME1 filesep FOLDERNAME2 filesep ... filesep FILENAME]
  17 
%
  18 
%   except that care is taken to handle the cases when the folders begin or
  19 
%   end with a file separator.
  20 
%
  21 
%   FULLFILE collapses inner repeated file separators unless they appear at 
  22 
%   the beginning of the full file specification. FULLFILE also collapses 
  23 
%   relative folders indicated by the dot symbol, unless they appear at 
  24 
%   the end of the full file specification. Relative folders indicated 
  25 
%   by the double-dot symbol are not collapsed.
  26 
%
  27 
%   To split a full file name into folder parts, use split(f, filesep).
  28 
%
  29 
%   Examples
  30 
%     % To build platform dependent paths to files:
  31 
%        fullfile(matlabroot,'toolbox','matlab','general','Contents.m')
  32 
%
  33 
%     % To build platform dependent paths to a folder:
  34 
%        fullfile(matlabroot,'toolbox','matlab',filesep)
  35 
%
  36 
%     % To build a collection of platform dependent paths to files:
  37 
%        fullfile(toolboxdir('matlab'),'iofun',{'filesep.m';'fullfile.m'})
  38 
%
  39 
%   See also FILESEP, PATHSEP, FILEPARTS, GENPATH, PATH, SPLIT.
  40 

  41 
%   Copyright 1984-2018 The MathWorks, Inc.
  42 
    
< 0.001 
   1518 
  43
    narginchk(1, Inf); 
  0.007 
   1518 
  44
    persistent fileSeparator; 
  0.002 
   1518 
  45
    if isempty(fileSeparator) 
  46 
        fileSeparator = filesep;
< 0.001 
   1518 
  47
    end 
  48 

  0.004 
   1518 
  49
    theInputs = varargin; 
  50 

< 0.001 
   1518 
  51
    containsCellOrStringInput = false; 
  0.003 
   1518 
  52
    containsStringInput = false;  
  53 

< 0.001 
   1518 
  54
    for i = 1:nargin 
  55 

  0.003 
   3036 
  56
        inputElement = theInputs{i}; 
  57 
        
< 0.001 
   3036 
  58
        containsCellOrStringInput = containsCellOrStringInput || iscell(inputElement); 
  59 
        
< 0.001 
   3036 
  60
        if isstring(inputElement) 
  61 
            containsStringInput = true; 
  62 
            containsCellOrStringInput = true; 
  63 
            theInputs{i} = convertStringsToChars(theInputs{i});
< 0.001 
   3036 
  64
        end 
  65 
    
  0.003 
   3036 
  66
        if ~ischar(theInputs{i}) && ~iscell(theInputs{i}) && ~isnumeric(theInputs{i}) && ~isreal(theInputs{i}) 
  67 
            error(message('MATLAB:fullfile:InvalidInputType'));
  0.004 
   3036 
  68
        end 
  69 

  0.001 
   3036 
  70
    end 
  71 
    
< 0.001 
   1518 
  72
    f = theInputs{1}; 
< 0.001 
   1518 
  73
    try 
  0.001 
   1518 
  74
        if nargin == 1 
  75 
            if ~isnumeric(f)
  76 
                f = refinePath(f, fileSeparator);
  77 
            else 
  78 
                f = char(f); 
  79 
            end
< 0.001 
   1518 
  80
        else 
< 0.001 
   1518 
  81
            if containsCellOrStringInput 
  82 
                theInputs(cellfun(@(x)~iscell(x)&&isempty(x), theInputs)) = [];
< 0.001 
   1518 
  83
            else 
  0.032 
   1518 
  84
                theInputs(cellfun('isempty', theInputs)) = ''; 
< 0.001 
   1518 
  85
            end 
  86 

< 0.001 
   1518 
  87
            if length(theInputs)>1 
  0.051 
   1518 
  88
                theInputs{1} = ensureTrailingFilesep(theInputs{1}, fileSeparator); 
< 0.001 
   1518 
  89
            end 
< 0.001 
   1518 
  90
            if ~isempty(theInputs) 
  0.041 
   1518 
  91
                theInputs(2,:) = {fileSeparator}; 
  0.002 
   1518 
  92
                theInputs{2,1} = ''; 
  0.018 
   1518 
  93
                theInputs(end) = ''; 
< 0.001 
   1518 
  94
                if containsCellOrStringInput 
  95 
                    f = strcat(theInputs{:});
< 0.001 
   1518 
  96
                else 
  0.022 
   1518 
  97
                    f = [theInputs{:}]; 
< 0.001 
   1518 
  98
                end 
< 0.001 
   1518 
  99
            end 
  0.052 
   1518 
 100
            f = refinePath(f,fileSeparator); 
  0.001 
   1518 
 101
        end 
 102 
    catch
 103 
        locHandleError(theInputs(1,:));
< 0.001 
   1518 
 104
    end 
 105 
    
< 0.001 
   1518 
 106
    if containsStringInput 
 107 
        f = string(f);
< 0.001 
   1518 
 108
    end 
  0.005 
   1518 
 109
end 

Other subfunctions in this file are not included in this listing.