表示整个8位的大小的Matlab二进制绘图

表示整个8位的大小的Matlab二进制绘图,matlab,plot,binary,magnitude,Matlab,Plot,Binary,Magnitude,我正在尝试实现一个幅度二进制图,其中y表示8位的二进制幅度。其他人通过绘制单个位来解决这个问题,但目标是在绘图上以二进制形式显示整个8位,表示为一个数字(即00000001=1) 代码如下: % Magnitude binMag = [00000001; 00000010; 00000100] % binary string representation of decimal 1, 2, 3 % Tried to convert bin to a double

我正在尝试实现一个幅度二进制图,其中y表示8位的二进制幅度。其他人通过绘制单个位来解决这个问题,但目标是在绘图上以二进制形式显示整个8位,表示为一个数字(即00000001=1)

代码如下:

     % Magnitude
     binMag = [00000001; 00000010; 00000100] 
% binary string representation of decimal 1, 2, 3
    % Tried to convert bin to a double
    binTodouble = str2double(binMag);
    figure;
    stairs(binTodouble)
总的来说,我的目标是有一个像下面这样的以二进制显示震级的图。

考虑到克里斯·卢恩戈的想法,您将得到以下简短脚本。我只是想添加如何具体设置
xticklabel
yticklabel
,就像您希望它在绘图中一样

% Binary values
bValues = { '00000000', 
            '00000001', 
            '00000010', 
            '00000011', 
            '00000100', 
            '00000101' };

% Double values
dValues = bin2dec(bValues);

% Output
figure(1);
stairs(dValues, dValues);
set(gca, 'xtick', dValues, 'xticklabel', dValues);
set(gca, 'ytick', dValues, 'yticklabel', bValues);

考虑到克里斯·卢恩戈的想法,您将得到以下简短脚本。我只是想添加如何具体设置
xticklabel
yticklabel
,就像您希望它在绘图中一样

% Binary values
bValues = { '00000000', 
            '00000001', 
            '00000010', 
            '00000011', 
            '00000100', 
            '00000101' };

% Double values
dValues = bin2dec(bValues);

% Output
figure(1);
stairs(dValues, dValues);
set(gca, 'xtick', dValues, 'xticklabel', dValues);
set(gca, 'ytick', dValues, 'yticklabel', bValues);

数字3的二进制表示是11,而不是100。在您的代码中,将
str2double
应用于已包含双精度的数组。您可能希望将二进制表示形式作为字符串输入,然后使用
bin2dec
将其转换为数字。数字3的二进制表示形式是11,而不是100。在您的代码中,将
str2double
应用于已包含双精度的数组。您可能希望以字符串形式输入二进制表示,然后使用
bin2dec
将其转换为数字。