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
我正在尝试 运行 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