2016-11-08 28 views
1

在我的代碼,我有以下行中:忽略M-文件的註釋符號(%)字符串

fprintf(logfile,'Parameters: Size: %d\tH: %.4f\tF: %.1f\tI: %.3f\tR: %d\tSigma: %d\tDisp: %.1f\r\n',parameter_sets(ps,:)); 

是太長了,所以我想打破它:

fprintf(logfile,'Parameters: Size: %d\tH: %.4f\tF: %.1f\tI: %.3f\tR: ... 
     %d\tSigma: %d\tDisp: %.1f\r\n',parameter_sets(ps,:)); 

但是,由於制動器在一個字符串內,MATLAB將第二行中的符號格式爲%d作爲註釋的開始,並忽略此行(併產生錯誤...)。

於是,我就可以很清楚的一個[]經紗的字符串:

fprintf(logfile,['Parameters: Size: %d\tH: %.4f\tF: %.1f\tI: %.3f\tR: ... 
     %d\tSigma: %d\tDisp: %.1f\r\n'],parameter_sets(ps,:)); 

,但沒有幫助,但它仍然解釋第二行註釋。我也試過在不同地方省略號(...),但沒有成功。

那麼,如果它有一個%登錄符號,那麼如何以格式化的方式(即合理的長度)編寫一行?

+2

的問題是不是''%符號。即使沒有它,你也不能在一個字符串中分割一行(你需要像Sardar_Usama所說的那樣) –

回答

3

把它在兩行是這樣的:

fprintf(logfile,['Parameters: Size: %d\tH: %.4f\tF: %.1f\tI: %.3f\tR:', ... 
     '%d\tSigma: %d\tDisp: %.1f\r\n'],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 
+0

太棒了!非常感謝 ;) – EBH