0
点赞
收藏
分享

微信扫一扫

2023年高性能计算就业及实习岗位大爆料

MATLAB位运算

MATLAB提供位运算,如'位','位或'和'位不操作,移位操作等各种函数

以下的表格显示了常用的按位运算:

函数目的/作用
bitand(a, b)整数a和b的逐位AND
bitcmp(a)a的位补码
bitget(a,pos)在指定位置pos中获取位,在整数数组A中
bitor(a, b)整数a和b的逐位OR
bitset(a, pos)在某一位置上设置位
bitshift(a, k)返回向左移位k位,相当于乘以2k。k的负值对应于向右移位或除以2 | k | 并舍入到最接近的整数到负无穷大。任何溢出位都被截断。
bitxor(a, b)整数a和b的逐位异或
swapbytes交换字节顺序

详细例子


在MATLAB中建立一个脚本文件,并输入下面的代码:

a = 60; % 60 = 0011 1100   
b = 13; % 13 = 0000 1101 
c = bitand(a, b)      % 12 = 0000 1100  
c = bitor(a, b)       % 61 = 0011 1101 
c = bitxor(a, b)      % 49 = 0011 0001 
c = bitshift(a, 2)    % 240 = 1111 0000 */
c = bitshift(a,-2)    % 15 = 0000 1111 */

运行该文件,显示以下结果:

c =
    12
c =
    61
c =
    49
c =
   240
c =
    15

MATLAB集合操作

MATLAB中包含多样的函数集合运算,如集,交集和测试组成员等。

下表显示了一些常用的设置操作:

函数描述
intersect(A,B)设置两个数组的交集;返回A和B所共有的值。返回的值按排序顺序排列。
intersect(A,B,'rows')将A和B的每一行作为单个实体处理,并返回A和B的公共行。返回的矩阵的行按排序顺序排列。
ismember(A,B)返回与A大小相同的数组,包含1(true),其中A的元素在其他地方的B中找到,它返回0(false)。
ismember(A,B,'rows')将A和B的每一行作为单个实体处理,并返回一个包含1(true)的向量,其中矩阵A的行也是B的行;否则,它返回0(false)。
issorted(A)如果A的元素按排序顺序返回逻辑1(true),否则返回逻辑0(false)。输入A可以是向量,也可以是N-by-1或1-by-N的字符串数组。如果A和sort(A)的输出相等,则A被认为是排序的。
issorted(A, 'rows')如果二维矩阵A的行按排序顺序返回逻辑1(真),否则返回逻辑0(假)。 如果A和排序(A)的输出相等,则认为矩阵A被排序。
setdiff(A,B)设置两个数组的差值;返回不在B中的值。返回数组中的值按排序顺序排列。
setdiff(A,B,'rows')

将每一行A和B行作为单个实体处理,并返回一个不在B中的行。返回的矩阵的行按排序顺序排列。

“行”选项不支持单元格数组。

setxor设置两个数组的异或
union设置两个数组的并集
unique数组中唯一的值

详细例子

在MATLAB中建立一个脚本文件,并键入下面的代码:

a = [7 23 14 15 9 12 8 24 35]
b = [ 2 5 7 8 14 16 25 35 27]
u = union(a, b)
i = intersect(a, b)
s = setdiff(a, b)

运行该文件,产生以下结果:

a =
     7    23    14    15     9    12     8    24    35
b =
     2     5     7     8    14    16    25    35    27
u =
  Columns 1 through 11
     2     5     7     8     9    12    14    15    16    23    24
  Columns 12 through 14
    25    27    35
i =
     7     8    14    35
s =
     9    12    15    23    24
举报

相关推荐

0 条评论