包装中提取数据

4视图(30天)
默罕默德
默罕默德 2012年2月15日
我有一个矩阵维度5 x 200 x 100,我想提取数据编码在第二和第三位的第一个字节(第一个字节意味着1 x 200 x 100)。
同样我需要数据编码在第四和第五位。
请注意,我所说的“数据”之间的一个数字0 - 3(它被提取2位)
最好的问候,默罕默德
1评论
默罕默德
默罕默德 2012年2月15日
移动:沃斯 2023年1月21日
等待答案。

登录置评。

答案(3)

沃尔特·罗伯森
沃尔特·罗伯森 2012年2月15日
有算术意味着,bitget ()
2的评论
沃尔特·罗伯森
沃尔特·罗伯森 2023年1月22日
bitget (int8 (23)、1:5)
ans = 1×5
1 1 1 0 1
但是,目前天;也许int8是早在2012年就不支持。万博1manbetx

登录置评。


1月
1月 2012年2月15日
x =地板(rand (200, 100) * 256);
一个=快速眼动(x (1::) / 2, 4);
这些是第二和第三位“你正在寻找?这取决于计算方向,如果你从0或1。
另请参阅 bitget
1评论
默罕默德
默罕默德 2012年2月16日
由于1月没有我不找位本身。我在寻找2 - 3位的整数包装。所以答案我应该寻找一个整数1、2、3或4

登录置评。


Floris詹森
Floris詹森 2023年1月21日
与答案有点晚,但这应该适合你:
注意,如果不是连续的你仍然可以提取数据位,但这将是更多的工作……
% uint8多维数组的开始
%(任意数量的尺寸应该工作)
myData = uint8 (randi(255[10年,20年,30]));
%创建一个面具的你想要的一些职位:
mask1 = 0 b00110000;%提取位置2中2位,3
mask2 = 0 b00011100;%提取3位位置3、4、5所示
%现在一点,和转移的号码
data1 = bitand (mask1 myData) / 16;%的转变,4
data2 = bitand (mask2 myData) / 4;%的转变,2
%观察结果:
次要情节(2,1,1)
直方图(data1 (:));
次要情节(2,1,2);
直方图(data2 (:));

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!