忽略字符串中m-file中的注释符号(%)



在我的代码中,我有以下一行:

fprintf(logfile,'Parameters: Size: %dtH: %.4ftF: %.1ftI: %.3ftR: %dtSigma: %dtDisp: %.1frn',parameter_sets(ps,:));

太长了,所以我想把它改成:

fprintf(logfile,'Parameters: Size: %dtH: %.4ftF: %.1ftI: %.3ftR: ...
        %dtSigma: %dtDisp: %.1frn',parameter_sets(ps,:));

但是,由于制动器在字符串内,MATLAB将第二行中的格式化%d符号视为注释的开始,并忽略这一行(并产生错误…)。

所以我试着用[]来使它更清晰,使字符串扭曲:

fprintf(logfile,['Parameters: Size: %dtH: %.4ftF: %.1ftI: %.3ftR: ...
        %dtSigma: %dtDisp: %.1frn'],parameter_sets(ps,:));

但是没有帮助,它仍然将第二行解释为注释。我还尝试在不同的地方使用和不使用省略号(...),但没有成功。

那么我怎么能写一行格式化的方式(即一个合理的长度),如果它有一个%符号在它?

像这样分成两行:

fprintf(logfile,['Parameters: Size: %dtH: %.4ftF: %.1ftI: %.3ftR:', ...
        '%dtSigma: %dtDisp: %.1frn'],parameter_sets(ps,:));
% notice the apostrophe and comma(',) before ellpsis(...) at the end of first line
% and apostrophe(') at the start of the second line

最新更新