Saving Cell array and String to text file.
이전 댓글 표시
I have a cell_in (combination of numeric, date&time & text data) of size mxn and need to save data in a text file.
Here is the code I have written and it works fine
fid = fopen(FilePath,'w');
for rows = 1:size(Cell_in,1)
fprintf(fid,'%s\n',Cell_in{rows,:});
end
fclose(fid)
Instead of doing it in a loop I changed it to string and saved data to text file using the following code
fid = fopen(FilePath,'w');
fprintf(fid,'%s\n',char(Cell_in));
fclose(fid)
and the text file is completely messed up. Am I doing something wrong?
1.If so what did I do wrong?
2. When loading a txt file to MATLAB one can extract the data as cell using
fid = fopen(FileName,'r');
txt_data = textscan(fid,'%s','delimiter','\n');
fclose(fid);
but why not the other way round is possible?
채택된 답변
추가 답변 (2개)
Konstantinos Sofos
2015년 3월 30일
편집: Konstantinos Sofos
2015년 3월 30일
Hi,
Can you try
fid = fopen(FilePath,'w');
fprintf(fid,'%s\n',cellfun(@(x) char(x),Cell_in,'UniformOutput',false));
fclose(fid)
or
fid = fopen(FilePath,'w');
fprintf(fid,'%s\n',char(cellfun(@(x) char(x),Cell_in,'UniformOutput',false)));
fclose(fid)
or you can convert to table and then export if you use R2013b or later
Regards,
Simon Wiedemann
2017년 9월 4일
0 개 추천
Hello there,
i have a problem with writing many files.
There are some (~20) Text-Files with strings of different lenght. I need to copy these files multiple times and change 1-5 lines in the copied files.
Till now i load a File in a cell array, change the lines and write them back to a new file with function fprintf. This is very slow so it takes very long to do this for every file.
Is it possible to copy a file and then only change one line in the already stored file? And would that be faster? Or is a other faster way?
Best regards, Simon
카테고리
도움말 센터 및 File Exchange에서 Data Type Conversion에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!