필터 지우기
필터 지우기

How to build a .dat file with a cell variable

조회 수: 4 (최근 30일)
Yode
Yode 2017년 7월 8일
댓글: 倪清策 倪 2021년 6월 1일
There is a picture in my textbook
Since this,I try to create a same .dat file for experiement.
>> m={'x2.3y4.56','x7.7y11.11','x12.5y5.5'};
>> save('file.dat','m')
>> type file.dat
MATLAB 5.0 MAT-file, Platform: PCWIN64, Created on: Sat Jul 08 11:19:36 2017
As you see,the type will give a wrong result.So I try
save('file.dat','m','-ascii')
Well,this time I will get some wrong information.How to create that *.dat* file?
  댓글 수: 1
倪清策 倪
倪清策 倪 2021년 6월 1일
[R,P]=corrcoef(test);
R=[2.41;2.05;2.34;1.48;1.39];
P=[0.34;0,5;0.42;0.43;0.42];

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

답변 (1개)

Image Analyst
Image Analyst 2017년 7월 8일
Use fprintf():
m = {'x2.3y4.56', 'x7.7y11.11', 'x12.5y5.5'};
fid = fopen('file.dat', 'wt');
for k = 1 : length(m)
fprintf('%s\n', m{k});
end
fclose(fid);
type file.dat
  댓글 수: 7
Walter Roberson
Walter Roberson 2017년 7월 12일
The difference between 'w' and 'wt' is that on MS Windows systems, if you use 'wt' then any time that you send a newline (char(10), format code '\n') to the file, the I/O subsystem will automatically write carriage return (char(13), format code '\r') before the newline. This provides backwards compatibility with NotePad and other old programs that expect CR/NL pairs at the end of lines.
On Linux and OS-X, 'w' and 'wt' do the same thing, which is to say that they send only newline without carriage return.
Jan
Jan 2017년 7월 12일
In addition to the line break conversion, the output in text mode considers char(8) or sprintf('\b') as backsapce and removes the former character. The EOF-Escape sequence can stop the reading of the file also, even if more characters are following. In consequence the number of written characters must not equal the number of characters to write.

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

카테고리

Help CenterFile Exchange에서 低级文件 I/O에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!