将字符串原样写入Matlab中的文件

时间:2012-07-17 13:28:23

标签: matlab latex

在matlab脚本中,我正在生成一个乳胶表。例如,该表的一部分看起来像这样。

\multirow{2}{*}{\textbf{b1}}
&
2 & 3 & 10092 & 10763 & 103390 & 2797 & 2929 & 3008 & 5\% & 8\% \\
& 4 & 2 & 20184 & 10763 & 74508 & 1830 & 1970 & 2029 & 8\% & 11\% \\

此字符串保存在变量str中。现在,当我尝试使用以下代码将str写入文件时。

f = fopen( 'report\results.tex', 'w' );
fprintf( f, str );
fclose(f);

我收到以下警告。

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

这可能是由于我的字符串中有许多反斜杠字符,用作转义序列。现在我该如何将这个字符串打印到文件中。

1 个答案:

答案 0 :(得分:4)

逃避反斜杠和百分号:

str = strrep(str,'\','\\');
str = strrep(str,'%','%%');

如果它只是你的印刷文字,那就没事了。

最小的工作示例:

str = '2 & 3 & 10092 & 10763 & 103390 & 2797 & 2929 & 3008 & 5\% & 8\% \\'
str = strrep(str,'\','\\');
str = strrep(str,'%','%%');
f=fopen('testing123.txt','w');
fprintf(f,str);
fclose(f);

,文件为:

2 & 3 & 10092 & 10763 & 103390 & 2797 & 2929 & 3008 & 5\% & 8\% \\

或如Ben A.建议的那样,使用fwrite

fwrite(f,str)

我认为

fprintf(f,'%s',str)

也会做到这一点,最好还包括换行符:

fprintf(f,'%s\n',str)