sprintf未正确创建有效的文件路径

时间:2017-01-17 23:22:08

标签: matlab

我正在尝试运行以下代码,但是在尝试读取文本文件时出现错误

DATAopts.imgsetpath = 'C:\Users\z5085693\Downloads\matconvnet-calvin-master\matconvnet-calvin-master\data\Datasets\VOC2010\VOCdevkit\VOC2010\ImageSets\Main\%s.txt';
trainName = 'train';

trainIms = textread(sprintf(DATAopts.imgsetpath, trainName), '%s'); 

这会产生错误:

  

使用textread时出错(第165行)
  找不到档案。

当我只执行sprintf部分

sprintf(DATAopts.imgsetpath, trainName)

我只是得到'C:'这是“找不到文件”错误的地方,因为很明显这不是完整路径。

发生了什么,我该如何解决?

1 个答案:

答案 0 :(得分:1)

字符'\'是转义字符,因此您在调用sprintf之前想要转义每个反斜杠以在结果中获得实际的反斜杠

escaped_imgsetpath = strrep(DATAopts.imgsetpath, '\', '\\');
result = textread(sprintf(escaped_imgsetpath, trainName));