Matlab:当变量数量未知时,如何将多个变量打印到一行?

时间:2017-09-24 20:13:14

标签: matlab

我正在编写一个matlab代码,用于将十进制整数转换为二进制。我的代码似乎工作正常,但我正在寻找一种方法来使输出显示更好。我想把它全部打印在一行上,d(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

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

你有几个选择。首先,要使d(1)成为最右边的数字,只需在显示之前翻转数组。

data_to_display = flip(d)

然后要显示它,你可以使用MATLAB的内置disp,它将显示所有数组元素之间有一些填充

disp(data_to_display)
%   0   1   0   1   0   1

或者您可以使用fprintf打印每个数字,但两者之间没有空格。 fprintf将使用您提供的格式说明符,并将其自动应用于数组的每个元素

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

% 010101

此外,除非您将此转换作为学习练习,否则您可以使用内置将十进制数转换为二进制表示形式,dec2bin