getting '0F' instead of 'F' for dec2hex(15)
    3 ビュー (過去 30 日間)
  
       古いコメントを表示
    
I want to apply dec2hex function to a very large matrix. For a reason which is beyond the scope of this question, I need to get '0F' instead of 'F' for dec2hex(15). Since the running time is a matter, I want to find a time-efficient method to fix this problem.
0 件のコメント
採用された回答
  Jan
      
      
 2013 年 10 月 6 日
        
      編集済み: Jan
      
      
 2013 年 10 月 6 日
  
      dec2hex(15, 2)
% >> 0F
Of course such tricks are explained in the documentation ( help dec2hex ), so it is worth to read it before posting in the forum.
sprintf is slightly faster than dec2hex:
sprintf('%02x', 15)
x = randi([0, 255], 1, 1e3);
tic, for k=1:100, s = dec2hex(x, 2); end, toc
tic, for k=1:100, s = sprintf('%02x', x); end, toc
 Elapsed time is 0.069916 seconds.
 Elapsed time is 0.052959 seconds.
While dec2hex replies a CHAR-matrix, sprintf creates a CHAR vector, which might be more useful.
2 件のコメント
  Walter Roberson
      
      
 2013 年 10 月 6 日
				There is no difference between capital and small letters in hex2dec().
To get uppercase out of sprintf(), use X instead of x. %02X instead of %02x
その他の回答 (0 件)
参考
カテゴリ
				Help Center および File Exchange で Data Type Conversion についてさらに検索
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


