2017-09-24 10 views
0

私は10進整数をバイナリに変換するためのMATLABコードを書いています。私のコードは正常に動作するようですが、出力表示をより良くする方法を探しています。私はすべての行にd(1)を一番右の数字として印字したいと思います。私は、複数の変数を1行に出力するにはいくつかのスレッドを見つけましたが、正確な変数が事前にわかっているコードに対してのみです。ここに関連コードがあります。Matlab:変数の数が不明なときに複数の変数を1行に出力するには?

while base10 > 0 

    %set the binary digits 
    if mod(base10, 2) == 1; 
     d(i) = 1; 
    end 

    if mod(base10, 2) == 0; 
     d(i) = 0; 
    end 

    %divide by 2 
    base10 = floor(base10/2); 
    i = i + 1; 

end 

while j < (i) 
    disp(d(j)); 
    j = j +1; 
end 

ありがとうございました。

答えて

0

あなたにはいくつかのオプションがあります。まず、d(1)を右端の数字にするには、配列を表示してから表示するだけです。

data_to_display = flip(d) 

そして、それを表示するには、

disp(data_to_display) 
% 0 1 0 1 0 1 

それとも、間にスペースなしで各桁を印刷するfprintfを使用することができます

それらの間にいくつかのパディングを持つすべての配列要素が表示されるMATLABの組み込み dispを使用することができますそれら。 fprintfは、指定した書式指定子を使用して、配列の各要素を に自動的に適用します。

fprintf('%d', data_to_display) 
fprintf('\n') % Print an explicit newline 

% 010101 

また、あなたが学習練習として、この変換をやっている場合を除き、あなたは組み込みの彼らのバイナリ表現に小数を変換するため、dec2bin

を使用することによって利益を得ることができます
関連する問題