MATLAB: Error message when writing file names with “\” character to text file.

error messagefprintf

I am outputting file names with partial paths, which have "\" in them, to a text file. If I only write the 12 character filename, I have no problem. It seems anything with a "\" yields an error (see attached).
% Write results to file outdata = [name(53:73),',',num2str(numberOfBlobs)]; fprintf(fid,outdata); fprintf(fid,'\r\n');

Best Answer

When you use the syntax fprintf(fid,outdata); the fprintf function is using your outdata variable as the format specification. Normally this is okay, if for example you wrote fprintf(fid, 'abcde') the char vector 'abcde' doesn't have any formatting operators. But if your char vector does contain something that looks like a formatting operator, like '\Z' for example, fprintf will try to treat it as a formatting operator. If it's not a formatting operator, you receive the warning you received.
In this case I recommend explicitly specifying a format specification like fprintf(fid, '%s', outdata). This way fprintf will interpret your outdata variable only as data, not as the format specification, and your data can include things that look like formatting operators without them being treated as formatting operators.