de2bi.m
上传用户:qzfzqd
上传日期:2013-04-17
资源大小:7k
文件大小:1k
源码类别:

matlab例程

开发平台:

Matlab

  1. function b = de2bi(d, n, p)
  2. %function b = de2bi(d, n, p)
  3. %DE2BI  转换10进制数为二进制数。
  4. %        B = DE2BI(D) 转换正整数向量D成二进制矩阵B。
  5. %        二进制矩阵B的每一行表示十进制向量D中相应的数。
  6. %       B = DE2BI(D, N) 转换正整数向量D成二进制矩阵B,
  7. %        但指定B的列数为N。
  8. %       B = DE2BI(D, N, P) 转换正整数向量D成p进制矩阵B。
  9. %      p进制矩阵B的每一行表示十进制向量D中相应的数。
  10. %           作者:机自01-2班曾新海
  11. %           zxh21st@163.com
  12. d = d(:);len_d = length(d);
  13. if min(d) < 0, error('Cannot convert a negative number');
  14. elseif ~isempty(find(d==inf)),
  15.      error('Input must not be Inf.');
  16. elseif find(d ~= floor(d)), 
  17.     error('Input must be an integer.');  
  18. end;
  19. if nargin < 2,
  20.    tmp = max(d); b1 = [];
  21.    while tmp > 0
  22.       b1 = [b1 rem(tmp, 2)];tmp = floor(tmp/2);
  23.    end;
  24.    n = length(b1);
  25. end;
  26. if nargin < 3,p = 2;end;
  27. b = zeros(len_d, n);
  28. for i = 1 : len_d
  29.    j = 1;tmp = d(i);
  30.    while (j <= n) & (tmp > 0)
  31.       b(i, j) = rem(tmp, p);tmp = floor(tmp/p);
  32.       j = j + 1;
  33. end;end;