Writing a table into a text file

7 visualizzazioni (ultimi 30 giorni)
Arman Kam
Arman Kam il 15 Feb 2013
Hi
I am getting so dizzy, i wrote a code and i want to record a table named 'DI' into a text file. I follow the instructions that is given here http://www.mathworks.com/help/matlab/ref/fprintf.html , but unfortunately it writes something quite different from the original table. I doubted that the code is wrong so i used the example that is given in the above link in my code and it gives me totally right answers.
The code that i use for this text writing is
fileID=fopen('ParkAngDI11.txt','w+');
fprintf(fileID,'%6s %12s\r\n','Time','Damage Index');
fprintf(fileID,'%6.2f %12.8f\r\n',DI);
fclose(fileID);
I would be so thankful if you help me through this.
  2 Commenti
Azzi Abdelmalek
Azzi Abdelmalek il 15 Feb 2013
What this table is containing?
Arman Kam
Arman Kam il 16 Feb 2013
The Table contains somee numbersd that is irrelevant with the original table that exists in matlab.
some the datas from original table is
0.0100000000000000 0
0.0200000000000000 0
0.0300000000000000 0
0.0400000000000000 0
0.0500000000000000 0
0.0600000000000000 0
0.0700000000000000 0
0.0800000000000000 0
0.0900000000000000 0
0.100000000000000 0
and it the first column continues to 39.98 and second column takes some values corresponding to column one.
the data that matlab writes for me is
Time Damage Index
0.01 0.02000000
0.03 0.04000000
0.05 0.06000000
0.07 0.08000000
0.09 0.10000000
0.11 0.12000000
0.13 0.14000000
0.15 0.16000000
.
.
.
39.91 39.92000000
39.93 39.94000000
39.95 39.96000000
39.97 39.98000000
0.00 0.00000000
0.00 0.00000000
.
.
.
0.00 0.00000000
0.00 0.00000000
0.00 0.00000000
0.00 0.00000000
-0.12 -0.12093101
-0.12 -0.12093101
-0.12 -0.12093101
-0.12 -0.12093101
i really need to write these tables to text file but i don't know what is wrong!!!

Accedi per commentare.

Risposta accettata

per isakson
per isakson il 15 Feb 2013
Modificato: per isakson il 15 Feb 2013
My guess: column-wise. Change
fprintf(fileID,'%6.2f %12.8f\r\n',DI);
to
fprintf(fileID,'%6.2f %12.8f\r\n',transpose(DI));
  2 Commenti
Arman Kam
Arman Kam il 16 Feb 2013
Thank you so much dear Per Isakson your solution worked, Can you tell me why is this happening?!
per isakson
per isakson il 16 Feb 2013
Modificato: per isakson il 16 Feb 2013
Column-wise is the key to understand why. fprintf reads column-wise from the input matrix and writes "row-wise" to the file controlled by the format specification. Remember: Matlab is "column-first-oriented". Try
clc
M = [ 11, 12; 21, 22 ]
disp('-- fprintf --')
fprintf( 1, '%4d,%4d\n', M )
result in the command window
M =
11 12
21 22
-- fprintf --
11, 21
12, 22
>>

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Startup and Shutdown in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by