2013-07-27 1396 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)) 
相关问题