Hi,
I'm trying to write an array into a text file using fprintf. It's working fine on my Mac Matlab Version 2015b. However, on my work PC with a 2011 version, it is not breaking the line, but writing everything into one single line. Since I only have those two setups, it's hard for me to figure out if it is a Mac/PC or a version issue. Also, maybe I'm missing something in the syntax?
filetimenormal=fullfile(savepath,'file.txt');
ftnormal=fopen(filetimenormal, 'w');
header={'year','mm', 'dd', 'hh', 'min', 'sec', 'file', 'type'};
fprintf(ftnormal,'%s \t %s \t %s \t %s \t %s \t %s \t %s \t %s \n',header{1,:});
[nrows,ncols] = size(newtimearray);
for row = 1:nrows
fprintf(ftnormal,'%s \t %s \t %s \t %s \t %s \t %s \t %s \t %s \n' ,newtimearray{row,:});
end
Thank you!

댓글 수: 3

Geoff Hayes
Geoff Hayes 2016년 8월 30일
Anke - is this true for the header too? Is it on the same line as the data? Put a breakpoint at the second fprintf and check to see whether the newtimearray{row,:} data types make sense for the output format string.
Anke Kügler
Anke Kügler 2016년 8월 30일
Geoff, yes, even the header is on the same like as the rest of the lines
Stephen23
Stephen23 2016년 8월 30일
@Anke Kügler : the solution is to read the fopen documentation, and add the t option to the permissions string. Walter Roberson's answer is the correct solution.

댓글을 달려면 로그인하십시오.

답변 (2개)

Walter Roberson
Walter Roberson 2016년 8월 30일

1 개 추천

For MS Windows, use
ftnormal=fopen(filetimenormal, 'wt');
instead of
ftnormal=fopen(filetimenormal, 'w');
Image Analyst
Image Analyst 2016년 8월 30일

0 개 추천

Depending on the program (notepad, wordpad, MSWord, etc.) the new lines are interpreted differently. If \n is not working, try \n\r or \r\n. One of those should work.

카테고리

도움말 센터File Exchange에서 Characters and Strings에 대해 자세히 알아보기

태그

질문:

2016년 8월 30일

댓글:

2016년 8월 30일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by