如何在MATLAB中将用户输入读入二进制数据?

时间:2016-04-16 05:42:02

标签: matlab input

我正在为课程编写程序,我们需要从用户读取4位输入(e.x.1101)并将其视为4位数字数据。然后我们需要绘制这个输入数据并稍后使用它来计算我们给出的生成多项式的循环码。

然而,在查看MATLAB输入之后,我不确定如何将用户输入读作"二进制输入",最好的方法是什么?

谢谢!

以下是我遇到问题的说明的确切部分:

  

询问用户4位输入数字数据并绘制用户给出的数字数据

然后我们使用该输入执行以下操作,我认为一旦我弄清楚如何获取用户输入,我应该能够做到这一点!

  

使用多项式P(X)= 1 + X + X3,生成有效码字并发送   代码字

1 个答案:

答案 0 :(得分:1)

您可以使用input功能要求用户插入数字。

b4_in = input('Insert 4-bit input: ' ,'s');

" 0" " 1" sequence作为字符串存储在输出变量b4_in中。

在MatLab中,二进制数实际上是char的string;例如,您可以使用bin2dec将二进制数字字符串转换为十进制数字。)

然后你可以检查一下输入的有效性:

  • 长度必须等于4
  • 字符串必须只包含" 0"和" 1" (您可以使用regexp

整个代码可能是:

% Prompt for User input
b4_in = input('Insert 4-bit input: ' ,'s');
% Get the number of input digit
n_c=length(b4_in);
% Check the number of input digit
if(n_c < 4)
   disp([num2str(n_c) ': Not enough input digit. 4 digits are required'])
elseif(n_c > 4)
   disp([num2str(n_c) ': Too many input digit. 4 digits are required'])
else
   % Check if all the input digit are valid
   inv_c=regexp(b4_in,'[a-z_A-Z2-9]');
   if(~isempty(inv_c))
      disp(['Invalid char: ' b4_in(inv_c) ' idx= ' num2str(inv_c)])
   else
      % Valid input: 4 digit, only "0" or "1"
      disp([b4_in ' Valid input'])
   end
end

希望这有帮助。

Qapla&#39;