在matlab中将字符串变量作为文件名给出

时间:2015-06-23 08:45:19

标签: string matlab filenames

我使用下面提到的代码根据图像的文件名从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

我能够获取文件名但无法使用它。 此代码显示以下错误 -

  

'文件'D:\ Academics \新文件夹\ CUB_200_2011 \ images \%s“不存在。

我对matlab有点新意,有人可以帮助我。

2 个答案:

答案 0 :(得分:1)

要连接文件路径的某些部分,您必须使用fullfile

 imread(fullfile('D:\Academics\New folder\CUB_200_2011\images\',C{1}{2*(image_count)}))

Strcat是另一种选择,但是fullfile负责在任何需要的地方使用一个文件分隔符。

答案 1 :(得分:-1)

您需要更改反斜杠\以转发斜杠/,否则一些\后跟一个字母可能是sprintf函数中的命令,例如示例\N\a。有关详细信息,请参阅formatSpec区域中的sprintf documentation

original_image=imread(sprintf('D:/Academics/New folder/CUB_200_2011/images/%s', C{1}{2*(image_count)}));