MATLAB Answers

How to write low level text to a file without interpretation

3 views (last 30 days)
John Deer
John Deer on 27 Nov 2019
Edited: Rik on 27 Nov 2019
i want to filter a given textfile. Therefore i open a file and make a cell array with the desired lines of text.
Now i want to save the text into a textfile (*.txt).
The given lines are for example:
' -------- Iteration 0 --------'
' Masking 8% (1393) of the nominal rays'
' RMS = 21.6nm, PV = 163.9nm, d_t = 0s'
If i use fprintf, the output looks like this:
-------- Iteration 0 --------
Masking 8
RMS = 21.6nm, PV = 163.9nm, d_t = 0s
This is clearly because matlab interprets the '%'. I didn't check if other chars would be also interpretet by matlab.
I cannot modify the lines to write without investigating massive calculation-time (by checking every single line before writing).
Is there a way to write text low-level to a file without any interpretation?


Sign in to comment.

Accepted Answer

Rik on 27 Nov 2019
Edited: Rik on 27 Nov 2019
If you want to write a char array, you should use the fprintf('%s', txt) syntax, otherwise fprintf will interpret your input as a format specification. (don't forget to add newline characters as needed, either in the char array itself or with '%s\n')


John Deer
John Deer on 27 Nov 2019
this works:
fprintf(fileID, '%s', InfoLine);
Rik on 27 Nov 2019
You can also merge those two:
fprintf(fileID, '%s\r\n', InfoLine);

Sign in to comment.

More Answers (0)

Sign in to answer this question.