Matlab继续给我以下错误消息:
???使用==>时出错DIR 参数必须包含字符串。
==>中的错误阿瓦尔15岁 x = dir(subDirs)
以下是我的代码:
%MY PROGRAM
clear all;
clc;
close all;
%-----Create Database-----
TrainDB = uigetdir('','Select Database Directory');
TrainFiles = dir(TrainDB);
dirIndex = [TrainFiles.isdir];
[s subDirNumber] = size(dirIndex);
for i = 3:subDirNumber
subDirs = {TrainFiles(i).name};
subDirs = strcat(TrainDB,'\',subDirs);
x = dir(subDirs) %<-------Error Here
end
代码有问题吗?我们将不胜感激。 我很抱歉我的英语不好。
答案 0 :(得分:2)
问题在于这一行:
subDirs = {TrainFiles(i).name};
当您在下一行上进行strcat时,您正在使用包含字符串的单元格来划分两个字符串。 subDirs中的结果是一个包含dir()显然不喜欢的字符串的单元格。你可以使用
subDirs = TrainFiles(i).name;
或
x = dir(subDirs(1))
我会推荐第一个选项。
答案 1 :(得分:1)
当我运行您的代码时,我收到错误消息:
??? Error using ==> dir
Function is not defined for 'cell' inputs.
MATLAB告诉你的是,当你致电dir(subDirs)
时,subDirs
是一个单元而不是dir
想要的字符串。像dir(subDirs{1,1})
之类的东西会做你想要的(我想)。我会留给你重写你的代码。
答案 2 :(得分:1)
使用subDirs = {TrainFiles(i).name};
创建一个stings的单元格数组。未为该类型定义dir
。只需省略名称
{}
即可
BTW:您的代码不仅列出目录,还列出所有文件。检查find
属性上的isdir
以仅获取目录的索引!