2017-10-26 7 views
0

おはよう、MATLABは同じ行の数字の間に一定の間隔を作成します

私は確かに組み込み関数がありますが、それを見つけることができません。私は、MATLABのテキストドキュメントに送信される情報の静的な配置を作成したいと考えています。たとえば:

height   weight   age   favorite number 
------------------------------------------------------------  
60    140    24   9 
30    45    3   10000000 
48    100    9   19 
9    7    1   1 

は現在、私はちょうどそれが並んで取得するパッド入りスペースでFPRINTコールをやっているが、異なる長さの番号を有するので、同様に、アライメントがオフになりどこの問題が発生する:

height   weight   age   favorite number 
------------------------------------------------------------  
60    140    24   9 
30    45    3   10000000 
48    100    9   19 
1    7    1   1 

ありがとうございます。

fid1 = fopen('stackoverflowtest', 'w'); 
if fid1 < 3, 
    error('ERROR'); 
end; 

fprintf(fid1, 'height   weight   age   favorite number \n'); 
fprintf(fid1, '------------------------------------------------------------ \n'); 

height = 0; 
weight = 10; 
age = 100; 
number = 3; 

for i = 1:100 
    fprintf(fid1, "%d    ', height); 
    fprintf(fid1, "%d    ', weight); 
    fprintf(fid1, "%d   ', age); 
    fprintf(fid1, "%d \n", number); 

    height = height + 3; 
    weight = weight + 6; 
    age = age - 1; 
    number = number + 23; 
end 
+1

あなたのコードスニペットを表示することができますか。 – frslm

+0

私は正確なコードを提供することはできませんが、私の元の例と同じスタイルを保っているスクリプトの例を追加しましたが、コンセプトは同じです –

答えて

0

あなたはたとえば%-15dため、fprintf format specificationでこれを行うことができます。

は、ここで私が何を意味するかを示しますスクリプトの例です。

ここで、-は左寄せを指定するフラグであり、15はその表示の周りにどれだけのスペースを残すかを指定します。あなたがtableとして、このデータを保存することができます:

height = A(:,1) 
weight = A(:,2); 
age = A(:,3); 
favourite_number = A(:,4); 
tab1 = table(height, weight, age, favourite_number); 
disp(tab1); 

これは、画面に出力します

我々は

height   weight   age   favorite number 
------------------------------------------------------------ 
60    140    24   9    
30    45    3   10000000   
48    100    9   19    
9    7    1   1 

EDITを表示

A = [60 140 24 9 
    30 45 3 10000000 
    48 100 9 19 
    9 7 1 1]; 
fprintf('height   weight   age   favorite number \n'),... 
fprintf('------------------------------------------------------------ \n'),... 
fprintf('%-15d %-15d %-12d %-15d \n',A') 

であなたの例を再現することができます

height weight age favourite_number 
______ ______ ___ ________________ 

60  140  24   9   
30   45  3  1e+07   
48  100  9  19   
9   7  1   1  

しかし、この表現をファイルに保存する方法はわかりません。

+0

ありがとう、私は適用できる正当化を知っていました。それを見つけるために探してください –

関連する問題