Matlab - imread - 参数必须是一个字符串

时间:2016-02-14 17:45:41

标签: matlab imread

我试图在文件夹中的所有图片上运行imread。我已完成此任务,但有一个错误表明我的参数不是字符串。

h_path = 'C:\Users\john\Matlab\train';
dirlist = dir('*.jpg');

for i = 1:length(dirlist)
    f_path = strcat(h_path,{'\'},dirlist(i).name);
    disp(f_path);
    I = imread(f_path); 

错误发生在最后一行。此外,disp函数打印出我的路径,没有任何错误。

1 个答案:

答案 0 :(得分:1)

您的代码问题是{'\'},不知道为什么要在此处放置单元格数组。只需使用char并且您的代码可以正常工作:

for i = 1:length(dirlist)
   f_path = strcat(h_path,'\',dirlist(i).name);
   disp(f_path);
   I = imread(f_path); 
end

正如Oleg已经提到的,最好使用fullfile,它与平台无关,避免了重复文件分隔符的问题。

for i = 1:length(dirlist)
   f_path = fullfile(h_path,dirlist(i).name);
   disp(f_path);
   I = imread(f_path); 
end