MATLAB Answers

0

Save data to .txt file

Asked by Bernoulli Lizard on 5 Sep 2012
Latest activity Edited by per isakson
on 20 Jan 2019
How do I save data to a txt file? I want to create a simple two column text file, where the first column is the data from an nx1 matrix and the second column is a different n x 1 matrix. I also want column headings in the first row of each column.
thanks

  1 Comment

Raghunandan V on 4 Oct 2018
the problem is you are trying to store them in an array whereas you have to store them in a cell array since each file is of different size Try this code
fileName={'new1.txt', 'new2.txt', 'new3.txt'};
%open file identifier
fid=fopen('MyFile.txt','w');
for k=1:length(fileName)
%read the file name as string including delimiters and next lines
List=textread(fileName{1,k},'%s','delimiter','\n');
%arrange them in order of k if you want in a cell array
FinalList{k,1}=List;
%or print them into a file.
fprintf(fid, [cell2mat(List) '\n']);
end
%close file indentifier
fclose(fid)

Sign in to comment.

3 Answers

José-Luis
Answer by José-Luis
on 5 Sep 2012
Edited by MathWorks Support Team on 9 Nov 2018
 Accepted Answer

To write a text file with columns of data that have variable names, use the “writetable” function. First, create the data to write, put it in a table with variable names, and then write the data to text file.
% Create two columns of data
A = rand(10,1);
B = rand(10,1);
% Create a table with the data and variable names
T = table(A, B, 'VariableNames', { 'A', 'B'} )
% Write data to text file
writetable(T, 'MyFile.txt')
For more information see:

  13 Comments

swati khan on 9 Nov 2016
% code
A = rand(10,1);
B = rand(10,1);
header1 = 'Hello';
header2 = 'World!';
fid=fopen('MyFile.txt','w');
fprintf(fid, [ header1 ' ' header2 'r\n']);
fprintf(fid, '%f %f r\n', [A B]');
fclose(fid);true
% code
Thanks for the code. Was looking for something exactly like this. May I add that "If you plan to read the file with Microsoft® Notepad, use '\r\n' instead of '\n' to move to a new line." https://www.mathworks.com/help/matlab/ref/fprintf.html
lafnath p on 14 Nov 2016
how to get the size of data in file
Better to use: fid=fopen('MyFile.txt','wt');
instead of fid=fopen('MyFile.txt','w');
otherwise when opening the file with notepad, there is not return to the line... everything is written on one line.

Sign in to comment.


Answer by WAEL Al-dulaimi on 8 Dec 2017

In case I want to open a text file and I have a loop that each time give me different results {x1, x1...xn}. So how can I save all the data that I got from the loop in different names such as y1, y2 .... etc? And under each one of them, I can find the result that I got. I'll appreciate your help. thank you

  1 Comment

Peter
on 8 Dec 2017
It is unclear form your question what you are trying to loop across. It sounds like your trying to read from a single text file; is this true? In any case you should be able to just assign the value that you read to a new variable. If you know how long each data set is you can preallocate matrices for those variables, but that's not necessarily necessary.

Sign in to comment.


Answer by Ahmed Saeed Mansour on 20 Jan 2019

How can we save transient CFD results in a file during running the code?

  0 Comments

Sign in to comment.