필터 지우기
필터 지우기

tab delimited .txt file

조회 수: 143 (최근 30일)
ricco
ricco 2011년 11월 18일
답변: Adam Danz 2020년 6월 17일
In order to write a matrix as a tab delimited .txt file I can use the following command:
dlmwrite(Filename, Data, 'delimiter', '\t');
Say that the dimensions of 'Data' is [m n], how is it possible to include a non numeric vector (i.e. vector containing words) as m(1) in order to state what each colummn refers to in the .txt file?
thanks

채택된 답변

Grzegorz Knor
Grzegorz Knor 2011년 11월 18일
Suppose that your Data is:
Data = [1 2 3;4 5 6; 7 8 9];
Would you like to create such a file?
line1 1 2 3
line2 4 5 6
line3 7 8 9
If so, this is my suggestion:
Data = [1 2 3;4 5 6; 7 8 9];
names = {'line1','line2','line3'};
fid = fopen('test_file','w');
for k=1:3
fprintf(fid,'%s\t%.2f\t%.2f\t%.2f\n',names{k},Data(k,:));
end
fclose(fid);
  댓글 수: 4
ricco
ricco 2011년 11월 19일
thanks that works perfectly. How would this code be altered if I needed the format of the .txt file to have the header on the top of each column of the matrix not on each row?
Paul Safier
Paul Safier 2019년 3월 27일
What if the data matrix had more than a few columns, say thousands? Would you have to type a format (e.g. .2f\t%) for each column?

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

추가 답변 (2개)

Walter Roberson
Walter Roberson 2011년 11월 18일
dlmwrite() can only be used for numeric data or for pure character data (an ugly hack with little purpose). dlmwrite() cannot be used for mixing character data and numeric data.
Grzegorz's proposed code looks fine.

Adam Danz
Adam Danz 2020년 6월 17일
For more recent releases of Matlab (r2013b or later), use writetable() with the delimiter set to \t.
writetable(T,'tabledata2.txt','Delimiter','\t')

카테고리

Help CenterFile Exchange에서 Low-Level File I/O에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by