读取路径时对转义字符发出警告

Warning on escaped characters when reading paths

这是给定结构变量的图像数据集的路径VCopts.imgepath

VCopts = 

  struct with fields:

       dst: 'HollywoodHeads'
        dr: 'C:\Users\Harsh\Downloads\Compressed\cnn_head_detection\data'
   imgepath: 'C:\Users\Harsh\Downloads\Compressed\cnn_head_detection\data\HollywoodHeads\   JPEGImages\%s.jpeg'

所以VCopts.imgepath有这个内容:

     VCopts.imgepath = 'C:\Users\Harsh\Downloads\Compressed\cnn_head_detection\data\HollywoodHeads\   JPEGImages\%s.jpeg'

如果我现在尝试使用 sprintf,它应该 return 一个字符串变量。它在 Linux 中工作正常,但在 Windows 中它抛出错误:

  sprintf(VCopts.imgepath,'test')
  Warning: Escaped character '\U' is not valid. See 'doc sprintf' for supported special characters. 

  ans =

        'C:'

如何使用 sprintf 在 Windows 上生成有效变量,就像我在 Linux 上所做的那样?

您 运行 遇到了反斜杠表示“转义该字符串中的下一个字符”的问题,但 Windows 也将其用作文件夹分隔符。您需要告诉 MATLAB 通过将反斜杠加倍来转义反斜杠的转义功能,或者将其替换为 UNIX 的文件夹分隔符 /、正斜杠

这可以通过 strrep()

轻松完成
new_path = strrep(old_path,'\', '/');