2013-07-27 97 views
1

假設我有一個1x32雙精度數組在matlab工作區輸入。該變量具有所有正整數值。我要轉換的每個值,以十六進制&存儲它在另一個陣列輸出
我使用DEC2HEX(輸入) &它生成的字符串以十六進制值。現在,我想要一個十六進制數字&不是一個字符串。
如何轉換這個十六進制字符串爲1×32 輸出
如果我使用str2num或str2double的六角陣列,它分別給空&喃?
如何去做在Matlab中將十進制數組轉換爲十六進制數組

+0

六角數字包括字符串(A,...,F)自然,這樣的類型是不串'NUM」。通常你可以同時使用'dec2hex'和'hex2num'函數來轉換爲十六進制字符串並轉換回去。只需使用十六進制字符串打印和顯示的東西。 – NKN

+0

正如我所說,我想要十六進制數組不是十六進制字符串,因爲我想發送這個數組到Xilinx ISE – KharoBangdo

+0

沒有「十六進制數字的數組」。數組元素的值只是數字。這些數字可以用十進制,十六進制,二進制或任意數量的其他基數**表示**,但底層數字仍然相同。此外,十進制值的十六進制表示非常奇怪;通常值是整數。 – beaker

回答

4

既沒有空也沒有使用'hex2dec'的Nan值。這樣的工作對我來說:

a=1:20; 
b=dec2hex(a); 
c=hex2dec(b) 

ans = 

1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
1

Matlab的不管理的十六進制數字本身,只有十進制格式。這就是爲什麼matlab以字符串格式存儲十六進制數字的原因。

要做到的除了六角例如,你必須通過十進制數表示:

a='ABC'; 
b='123'; 
c=dec2hex(hex2dec(a)+hex2dec(b)) 
相關問題