This is a static copy of a profile report

Home

Function details for fullfileThis is a static copy of a profile report

Home

fullfile (Calls: 1635, Time: 0.224 s)
Generated 28-Jun-2020 22:32:30 using performance time.
function in file /Applications/MATLAB_R2018a.app/toolbox/matlab/iofun/fullfile.m
Copy to new window for comparing multiple runs

Parents (calling functions)

Function NameFunction TypeCalls
genpathfunction1635
Lines where the most time was spent

Line NumberCodeCallsTotal Time% TimeTime Plot
98
f = refinePath(f,fileSeparator...
16350.052 s23.2%
86
theInputs{1} = ensureTrailingF...
16350.048 s21.5%
82
theInputs(cellfun('isempty', t...
16350.022 s10.0%
89
theInputs(2,:) = {fileSeparato...
16350.019 s8.5%
95
f = [theInputs{:}];
16350.019 s8.3%
All other lines  0.064 s28.7%
Totals  0.224 s100% 
Children (called functions)

Function NameFunction TypeCallsTotal Time% TimeTime Plot
fullfile>refinePathsubfunction16350.046 s20.4%
fullfile>ensureTrailingFilesepsubfunction16350.037 s16.4%
Self time (built-ins, overhead, etc.)  0.142 s63.2%
Totals  0.224 s100% 
Code Analyzer results
No Code Analyzer messages.
Coverage results
Show coverage for parent directory
Total lines in function107
Non-code lines (comments, blank lines)53
Code lines (lines that can run)54
Code lines that did run36
Code lines that did not run18
Coverage (did run/can run)66.67 %
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-2016 The MathWorks, Inc.
  42 
    
< 0.001 
   1635 
  43
    narginchk(1, Inf); 
  0.007 
   1635 
  44
    persistent fileSeparator; 
  0.002 
   1635 
  45
    if isempty(fileSeparator) 
  46 
        fileSeparator = filesep;
  47 
    end
  48 

  0.003 
   1635 
  49
    theInputs = varargin; 
  50 

< 0.001 
   1635 
  51
    containsCellOrStringInput = false; 
< 0.001 
   1635 
  52
    containsStringInput = false;  
  53 

< 0.001 
   1635 
  54
    for i = 1:nargin 
  55 

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

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

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

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