find() returns content of {1×0 double} cell array
2 次查看(过去 30 天)
显示 更早的评论
fullfiles have a list of file paths, RAW has the substrings I like to search for in the file paths.
I want the output AllIndex to be indexes of those found files.
AllIndex={};
for k = 1 : length(RAW)
IndexRAW = strfind(fullfiles, char(RAW(k)));
Index = find(~(cellfun('isempty', IndexRAW)));
AllIndex{end+1}=Index
end
but my output is
AllIndex =
1×8 cell array
{1×0 double} {1×0 double} {1×0 double} {1×0 double} {1×0 double} {1×0 double} {1×0 double} {1×0 double}
its content shown in Editor as
[] [] [] [] [] [] [] []
Please help! Thanks!!
3 个评论
Stephen23
2020-4-15
"Result of strfind is integer arrays but you are trying to use cellfun"
The MATLAB documentation states:
"If str is a cell array of character vectors or a string array, then strfind returns a cell array of vectors of type double."
采纳的回答
darova
2020-4-15
What about simple for loops?
ffile = {'\\path\143' '\\path\204' '\\path\450'};
RAW = {'450' '143'};
allind = zeros(size(RAW));
for i = 1:numel(RAW)
for j = 1:numel(ffile)
if strfind(ffile{j},RAW{i})
allind(i) = j;
break;
end
end
end
allind
4 个评论
darova
2020-4-15
- but for some reason it doesnt work with my (fullfiles 1×101 cell array and RAW 8×1 cell array)
Can you show? I don't believe
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Data Type Conversion 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!