You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: strmatch_substr.m
    path of file: ./repos/bnt/KPMtools
    
    the code of the file until where you have to start completion: function ndx = strmatch_substr(str, strs)

    
function ndx = strmatch_substr(str, strs)
% STRMATCH_SUBSTR Like strmatch, except str can match any part of strs{i}, not just prefix.
% ndx = strmatch_substr(str, strs)
%
% Example:
% i = strmatch('max', {'max','minimax','maximum'})
%  returns i = [1; 3] since only 1 and 3 begin with max, but
% i = strmatch_substr('max', {'max','minimax','maximum'})
%  returns i = [1;2;3];
%
% If str is also a cell array, it is like calling strmatch_substr several times
% and concatenating the results. 
% Example:
% 
% i = strmatch_substr({'foo', 'dog'}, {'foo', 'hoofoo', 'dog'}) 
%   returns i = [1;2;3]

ndx = [];
if ~iscell(str), str = {str}; end