在Matlab中使用sprintf?

时间:2012-09-11 20:50:21

标签: matlab printf

这类似于我先前在Matlab中打开pdf的问题。

file = 'sl3_knt_1_2.pdf'
location = 'C:\Program Files\Tracker Software\PDF Viewer\PDFXCview.exe %s'
str = sprintf(location,file);
system(str)

这会返回警告:

Warning: Invalid escape sequence appears in format string. See help sprintf for valid escape sequences. 

我认为它有一些位置变量被读取为转义序列,因为它使用\但我不确定。我似乎无法让这个工作。

3 个答案:

答案 0 :(得分:4)

试试这个:

file = 'sl3_knt_1_2.pdf'
location = 'C:\Program Files\Tracker Software\PDF Viewer\PDFXCview.exe'

str = sprintf('%s %s',location, file)

system(str)

答案 1 :(得分:3)

简单的解决方案是使用'/'代替'\',它适用于所有平台,包括Windows。 '\'有问题是一个特殊角色。

答案 2 :(得分:2)

或者,您可以更改您的位置字符串:

location = 'C:\\Program Files\\Tracker Software\\PDF Viewer\\PDFXCview.exe %s'

通常\用于特殊字符。例如,\n是行尾。所以当你真的想写\时,你需要使用\来逃避它。所以,在这种情况下你需要写\\