在matlab中将字符串变量作为文件名
Giving a string variable as a filename in matlab
我正在使用下面提到的代码根据图像的 id 从 images_1 文本文件中获取图像的文件名作为字符串,并使用它们从目录
中读取图像
image_count=1;
for image_count=1:6
file=fopen('D:\Academics\New folder\CUB_200_2011\images_1.txt','r');
C = textscan(file, '%s');
original_image=imread('D:\Academics\New folder\CUB_200_2011\images\%s','C{1}{2*(image_count)}');
imshow(original_image)
end
我可以获取文件名但无法使用它。
此代码显示以下错误-
'File "D:\Academics\New folder\CUB_200_2011\images\%s" does not exist.
我对matlab有点陌生,谁能帮帮我。
您需要将反斜杠 \
更改为正斜杠 /
,否则一些 \
后跟一个字母可能是 sprintf
函数中的命令,例如 \N
或 \a
。有关详细信息,请参阅 formatSpec
区域中的 sprintf documentation。
original_image=imread(sprintf('D:/Academics/New folder/CUB_200_2011/images/%s', C{1}{2*(image_count)}));
要连接部分文件路径,您必须使用 fullfile
imread(fullfile('D:\Academics\New folder\CUB_200_2011\images\',C{1}{2*(image_count)}))
Strcat 是另一种选择,但 fullfile 负责在任何需要的地方使用一个文件分隔符。
我正在使用下面提到的代码根据图像的 id 从 images_1 文本文件中获取图像的文件名作为字符串,并使用它们从目录
中读取图像image_count=1;
for image_count=1:6
file=fopen('D:\Academics\New folder\CUB_200_2011\images_1.txt','r');
C = textscan(file, '%s');
original_image=imread('D:\Academics\New folder\CUB_200_2011\images\%s','C{1}{2*(image_count)}');
imshow(original_image)
end
我可以获取文件名但无法使用它。 此代码显示以下错误-
'File "D:\Academics\New folder\CUB_200_2011\images\%s" does not exist.
我对matlab有点陌生,谁能帮帮我。
您需要将反斜杠 \
更改为正斜杠 /
,否则一些 \
后跟一个字母可能是 sprintf
函数中的命令,例如 \N
或 \a
。有关详细信息,请参阅 formatSpec
区域中的 sprintf documentation。
original_image=imread(sprintf('D:/Academics/New folder/CUB_200_2011/images/%s', C{1}{2*(image_count)}));
要连接部分文件路径,您必须使用 fullfile
imread(fullfile('D:\Academics\New folder\CUB_200_2011\images\',C{1}{2*(image_count)}))
Strcat 是另一种选择,但 fullfile 负责在任何需要的地方使用一个文件分隔符。