Variable Output to Text File

2 views (last 30 days)
Amanda
Amanda on 18 Feb 2013
I have 3 columns of data(3X1) saved in CA, TX, FL variables:
CA = [1;2;3]
TX = [4;5;6]
FL = [7;8;9]
I want to generate an output to a* text file* as seen below:
CA TX FL
1 4 7
2 5 8
3 6 9
I have been working with various ways fprintf and etc, but the rows and columns are not lining up. Here is one idea that I have been working with:
Thanks, Amanda

Accepted Answer

the cyclist
the cyclist on 18 Feb 2013
Edited: the cyclist on 18 Feb 2013
It wasn't clear to me if you wanted to include the state abbreviations as headers to the columns, so I included a flag that you set true/false.
There are probably slicker ways to do this, but I tried to stick close to the format you had, to help your understanding.
INCLUDE_HEADER = true;
CA = [1;2;3]
TX = [4;5;6]
FL = [7;8;9]
myMatrix = [CA,TX,FL];
mycell = num2cell(myMatrix);
myHeader = {'CA','TX','FL'};
[nrows,ncols] = size(mycell)
filename = 'celldata.txt'
fid = fopen(filename,'w')
if INCLUDE_HEADER
fprintf(fid,'%s %s %s\n', myHeader{:});
end
for row=1:nrows
fprintf(fid,'%d %d %d\n', mycell{row,:});
end
fclose(fid)
  1 Comment
Amanda
Amanda on 18 Feb 2013
Thanks so much. I have been struggling on this all morning.

Sign in to comment.

More Answers (1)

Azzi Abdelmalek
Azzi Abdelmalek on 18 Feb 2013
Edited: Azzi Abdelmalek on 18 Feb 2013
Try
dlmwrite('filename',cell2mat(mycell),'delimiter',' ')

Community Treasure Hunt

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

Start Hunting!