在用matlab进行数字图像处理编程仿真时同学问到了我bitget函数,不巧,对出现的问题我也十分不清楚(问题应该很简单但奈何我水平颇羞),上网查阅资料后,有些许明朗,遂决定总结一下,记录分享于此。
1、问题提出
temp是一个10*10矩阵:
temp =
10×10 uint8 矩阵
64 49 45 40 45 66 86 78 60 40
43 43 41 37 40 41 49 44 45 39
40 40 41 39 42 41 40 38 36 36
39 38 39 39 45 38 42 42 40 47
38 37 37 36 39 41 47 62 53 42
36 35 37 37 57 48 75 94 87 71
36 36 40 43 51 68 113 139 125 116
38 56 48 53 72 102 140 176 175 153
31 64 65 50 66 96 153 186 188 171
29 41 68 50 39 54 141 189 188 183
在读取此矩阵低两位时应用了以下语句:
bitget(temp,1:2)%希望输出矩阵每个元素低二位 (1)
程序报错:
此处“对于各个输入的大小必须相同”很不理解,因为:
将语句(1)改为以下语句时程序正常运行:
Q=bitget(temp,1)%输出低1位 (2)
T=bitget(temp,2)%输出低2位
Q =
10×10 uint8 矩阵
0 1 1 0 1 0 0 0 0 0
1 1 1 1 0 1 1 0 1 1
0 0 1 1 0 1 0 0 0 0
1 0 1 1 1 0 0 0 0 1
0 1 1 0 1 1 1 0 1 0
0 1 1 1 1 0 1 0 1 1
0 0 0 1 1 0 1 1 1 0
0 0 0