function S = strpad(obj, S, varargin) %STRPAD String rightpadding % S = strpad(CA) applies rightpadding of spaces to all elements of the % cell array CA so that all have the same length and returns the cell % array S. % % S = strpad(CA, n) sets extra rules for the padding. If n = 0 (default), % the longest string determines the length. If n > 0, n will be the % length until which padding is added. Note that if a string is longer % than n, it will not be truncated. If n < 0, -n is a margin, a number of % spaces added to the longest string and that then decides the final % length for all elements. % % S = strpad(CA, n, '-truncate') truncates string if their length % exceeds the value of n > 0 (see above). % Handle flags [flg varargin] = flagParser(varargin, 'truncate'); % Handle input p = inputParser(); p.addRequired('S'); p.addOptional('n', 0); p.parse(S, varargin{:}); p = p.Results; S = p.S; n = p.n; % If S is an array, make it a cell array if isnumeric(S) S = cellfun(@num2str, num2cell(S), 'UniformOutput', false); end % If S is a string, make it a cell array if ischar(S) S = {S}; end % Padding method depends on n if n > 0 maxLength = p.n; else maxLength = max(max(cellfun(@length, S))) - n; end % For each element, add padding S = cellfun(@(s)([s char(zeros(1, maxLength-numel(s))+32)]), S, 'UniformOutput', false); % Truncation if flg.truncate S = cellfun(@(s)(s(1:maxLength)), S, 'UniformOutput', false); end % Display mode TODO if nargout > 0 return; end end