如何看一下Matlab矩阵的二进制数据

时间:2014-06-29 10:57:54

标签: matlab

我真的没有太多使用matlab的经验,所以请原谅我,如果这是一个愚蠢的问题: 我有宽度*高度* 3矩阵,uint16值,其中包含一个图像,现在我需要查看字节表示。为了清楚我想要一个小例子,如果它是1x1x3矩阵,值为0x1234,0x5678和0xABCD,我想要一个包含6个uint8值的数组:0x12,0x34,0x56,0x78,0xAB和0xCD。所以我可以用256个Bins得到一个正确的直方图,它可以准确地显示出哪些字节出现频率。

当然,我可以浏览整个矩阵并计算每个uint16的2字节值,但是我几乎没有matlab知识,我将使用2个for循环和一些位移,这将导致可怕的性能

问候Uzaku

1 个答案:

答案 0 :(得分:1)

我不会切换到二进制或六进制表示,在Matlab中这些表示是字符,对进一步计算不是很有用。我会用这个:

first_bits=M./2^8
last_bits=mod(M,2^8)

将两者组合成4d矩阵可能很有用

M2=cat(4,first_bits,last_bits)

前三个维度已知,最后一个索引对于前8位为1或对于最后8位为2。