2017-09-24 107 views
0

我正在寫一個matlab代碼來將十進制整數轉換爲二進制。我的代碼似乎工作正常,但我正在尋找一種方法來使輸出顯示更好。我希望它全部打印在d(1)作爲最右邊的數字。我發現有多個線程可以將多個變量打印到一行,但只適用於預先知道要打印的確切變量的代碼。這是相關的代碼。Matlab:如何在變量數量未知時將多個變量打印到一行?

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) 

然後顯示它,你可以使用MATLAB的內置disp,它會顯示在你可以使用fprintf他們

之間或

disp(data_to_display) 
% 0 1 0 1 0 1 
打印每個數字之間沒有空格有一些填充所有數組元素他們。 fprintf將使用您提供的格式說明符並將其自動應用到 陣列的每個元素

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

% 010101 

而且,除非你做這種轉換作爲練習,您可以通過使用內置的轉換十進制數的二進制表示,dec2bin

受益