gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 20:26:25 27 4
gpt4 key购买 nike

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

\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.

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

最佳答案

转义反斜杠和百分号:

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)

关于matlab - 将字符串原样写入Matlab中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11523555/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com