我正在编写一个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
感谢您的帮助。
答案 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