Writing a table into a text file

8 ビュー (過去 30 日間)
Arman Kam
Arman Kam 2013 年 2 月 15 日
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 件のコメント
Azzi Abdelmalek
Azzi Abdelmalek 2013 年 2 月 15 日
What this table is containing?
Arman Kam
Arman Kam 2013 年 2 月 16 日
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!!!

サインインしてコメントする。

採用された回答

per isakson
per isakson 2013 年 2 月 15 日
編集済み: per isakson 2013 年 2 月 15 日
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 件のコメント
Arman Kam
Arman Kam 2013 年 2 月 16 日
Thank you so much dear Per Isakson your solution worked, Can you tell me why is this happening?!
per isakson
per isakson 2013 年 2 月 16 日
編集済み: per isakson 2013 年 2 月 16 日
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
>>

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeStartup and Shutdown についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by