读取路径时对转义字符发出警告
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,'\', '/');
这是给定结构变量的图像数据集的路径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,'\', '/');