Shouldn't fprintf(s) work for any string s?
조회 수: 3 (최근 30일)
이전 댓글 표시
Hi,
I have a structure array that I want to write to a file. I initially used evalc to do this, but found that Rody Oldenhuis's toString function gave a more informative string. It turns out, however, that I am not able to write the resulting string to a file (or to stdout) with fprintf. The following:
s = toString(myStruct);
fprintf(s)
returns gibberish, even though s is a character array as it should be. I thought fprintf worked for all strings. What am I missing?
댓글 수: 3
채택된 답변
Jan
2013년 10월 14일
편집: Jan
2013년 10월 14일
fprintf works for strings, but interprets escape characters. Compare:
fprintf('hello, this is a \n backslash');
fprintf('%s', 'hello, this is a \n backslash');
Similar problems occur for %. So better use the '%s' format specifier to display strings.
[EDITED after your comment] I assume "multi-line-string" means a CHAR matrix. A short example would have revealed this immediately. Then:
CStr = cellstr(Str);
fprintf('%s\n', CStr{:});
Please care for adding a helpful example to reduce the time we waste with guessing.
댓글 수: 3
Jan
2013년 10월 14일
Thanks, Alec. There is no need to say sorry, because you are the one who suffers most from a delayed solution. It is the nature of a question, that it is not clear in the beginning, which information is important and which is not.
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Multirate Signal Processing에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!