我正在寻找一种将16位无符号整数数组转换为ASCII字符数组的方法。我正在使用char来进行转换
D=[65 65 65 65];
char(D)
将显示4'A'。但是,由于D中的每个数字都是16位,我希望它将每个数字转换为2个字符。例如,如果我有
D=[16707]
char(D)
我希望它能给我两个字母'A'和'C'。但是char总是返回1个字符。无论如何强制char转换像我说的方式?感谢。
答案 0 :(得分:1)
为此,您需要编写自己的函数。
您可以使用char()分别转换最重要的字节和最低有效字节。
k = 16707;
first = char(bitand(bitshift(k, -8), 255));
second = char(bitand(k, 255));
答案 1 :(得分:0)
看一看 http://www.mathworks.com/help/matlab/ref/char.html
它巧妙地说明char函数仅对8位数有效。你可以用这个转换数组的每个单元格,并联系每两个单元格的结果。
答案 2 :(得分:0)