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

125 次查看(过去 30 天)
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

采纳的回答

Sugar Daddy
Sugar Daddy 2020-6-1
编辑:Sugar Daddy 2020-6-1
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 个)

类别

Help CenterFile Exchange 中查找有关 String Parsing 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by