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

Matlab - imread - the argument must be a string

我正在尝试 运行 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 函数可以毫无错误地打印出我的路径。

您的代码的问题是 {'\'},不确定为什么要在此处放置元胞数组。只需使用 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