首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

Matlab中找在两矩阵相同的行编号

Matlab中找在两矩阵相同的行编号

如有矩阵a=[2 3;3 3;5 6;7 8],现在需要寻找在矩阵a中和矩阵b=[3 3]相同的行编号,或者寻找在矩阵a中是否有一行和矩阵b相等,请问各位大侠应该如何解决?使用for循环的方法小弟知道如何做,就是想问问大家有没有什么matlab中自带的函数可以解决这个问题?



解答:
  • a=[2 3;3 3;5 6;7 8]
  • b=[3 3];
  • c=find(all(bsxfun(@eq,a,b),2))
  • c =
  •      2


bsxfun函数的使用


语法:C = bsxfun(fun,A,B)

对数A和B进行二元操作,其中fun是函数句柄,可以是 M-file 函数,也可以是如下built-in 函数:
  • @plus        Plus
  • @minus       Minus
  • @times       Array multiply
  • @rdivide     Right array divide
  • @ldivide     Left array divide
  • @power       Array power
  • @max         Binary maximum
  • @min         Binary minimum
  • @rem         Remainder after division
  • @mod         Modulus after division
  • @atan2       Four quadrant inverse tangent
  • @hypot       Square root of sum of squares
  • @eq          Equal
  • @ne          Not equal
  • @lt          Less than
  • @le          Less than or equal to
  • @gt          Greater than
  • @ge          Greater than or equal to
  • @and         Element-wise logical AND
  • @or          Element-wise logical OR
  • @xor         Logical exclusive OR
  • 如果使用了M-file 函数, 输入必须是同样大小的两个列向量, 或者一个是列向量,一个是标量;
  • 输出数组C的大小为:
  • max(size(A),size(B)).*(size(A)>0 & size(B)>0).
继承事业,薪火相传
返回列表