Using fprintf to create a table of values

조회 수: 47 (최근 30일)
Britnie Carpentier
Britnie Carpentier 2019년 2월 9일
댓글: Stephen23 2021년 2월 18일
I am trying to get a table that looks like this while using fprintf. It is supposed to be left justified and the first column with no decimal places and the 2nd column 6 decimal places.
n h
------------
1.0000 1.0000
2.0000 1.5000
3.0000 1.8333
4.0000 2.0833
5.0000 2.2833
6.0000 2.4500
7.0000 2.5929
8.0000 2.7179
9.0000 2.8290
10.0000 2.9290
11.0000 3.0199
12.0000 3.1032
13.0000 3.1801
14.0000 3.2516
15.0000 3.3182
16.0000 3.3807
17.0000 3.4396
18.0000 3.4951
19.0000 3.5477
20.0000 3.5977
i tried this code but the columns and rows keep messing up
N = 20;
n = (1:1:20)';
h = cumsum(1./n);
m = [n h]
fprintf(' n h\n')
fprintf('----------\n')
fprintf('%-2.0f %-9.6f\n',m)
and i keep getting this as a result
n h
------------
1 2.000000
3 4.000000
5 6.000000
7 8.000000
9 10.000000
11 12.000000
13 14.000000
15 16.000000
17 18.000000
19 20.000000
1 1.500000
2 2.083333
2 2.450000
3 2.717857
3 2.928968
3 3.103211
3 3.251562
3 3.380729
3 3.495108
4 3.597740
>> how can I change this to look like the first table?

답변 (1개)

Stephen23
Stephen23 2019년 2월 9일
편집: Stephen23 2019년 2월 9일
Remember that MATLAB is column-major, so it works down the columns first. Pay careful attention to the orientation of the vectors:
n = 1:20;
h = cumsum(1./n);
m = [n;h];
fprintf(' n h\n')
fprintf('----------\n')
fprintf('%-2.0f %-9.6f\n',m)
giving:
n h
----------
1 1.000000
2 1.500000
3 1.833333
4 2.083333
5 2.283333
6 2.450000
7 2.592857
8 2.717857
9 2.828968
10 2.928968
11 3.019877
12 3.103211
13 3.180134
14 3.251562
15 3.318229
16 3.380729
17 3.439553
18 3.495108
19 3.547740
20 3.597740
  댓글 수: 2
James Thorpe
James Thorpe 2021년 2월 17일
If you wanted to print the table in scientific notation with 4 significant digits, how would you go about it?
Stephen23
Stephen23 2021년 2월 18일
@James Thorpe:
fprintf('%.3e',pi)
3.142e+00

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Tables에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by