MATLAB Answers

How to fix 'Error using contains First argument must be a string array, character vector, or cell array of character vectors.'

120 views (last 30 days)
Mari Norwie
Mari Norwie on 1 Jun 2020
Edited: Sugar Daddy on 1 Jun 2020
I am getting the error:
Error using contains First argument must be a string array, character vector, or cell array of character vectors.
Error in xlsxdatatostructurearray/getgastablelisting (line 17) TF1 = contains(Directory{d},FilePrefix,'IgnoreCase',true);
Error in xlsxdatatostructurearray (line 25) for l = 1:length(getgastablelisting(FilePrefix, DirectoryName, filetype))
please help.
This is the code that is giving the error.
function [LookupTableFiles] = getgastablelisting(FilePrefix, DirectoryName, filetype)
LookupTableFiles = {};
Directory = dir(DirectoryName);
Directory = struct2cell(Directory);
for d = 1:length(Directory)
TF1 = contains(Directory{d},FilePrefix,'IgnoreCase',true);
TF = contains(Directory{d},filetype,'IgnoreCase',true);
if (TF1 == 1) && (TF == 1)
LookupTableFiles = {LookupTableFiles Directory{d}};
end
end
end

  0 Comments

Sign in to comment.

Accepted Answer

Sugar Daddy
Sugar Daddy on 1 Jun 2020
Edited: Sugar Daddy on 1 Jun 2020
There are 6 fields in structure i.e. name, folder, data, bytes, isdir and datenum
three of them are str and two of them are numbers
when you convert struct2cell it puts each fileld in a new cell giving you the size of 6xactual number of files or folders
so
Directory{1,d}
will give you file name and can work with contains
Directory{2,d}
will give you folder name and can work with contains

  0 Comments

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!