小编Tin*_*ria的帖子

将数组与矩阵中的每一行进行比较(列数可能不同)

假设我有一个7*3矩阵t.

>> t=[2,1,3;5,1,9;4,6,1;1,4,6;7,1,5;1,7,4;9,7,5]

t =

 2     1     3
 5     1     9
 4     6     1
 1     4     6
 7     1     5
 1     7     4
 9     7     5
Run Code Online (Sandbox Code Playgroud)

和一个像这样的两个值的数组

E = [2,1]

e =

 2     1
Run Code Online (Sandbox Code Playgroud)

我需要知道t中哪一行有值1和2(即矩阵e的值).即,给定函数匹配(e,t),它应该返回满足该值的行号.

我写了一个函数匹配,它完成了这项工作.

function [ faceindex ] = match(e,t)
c=ismember(t,e)
d=sum(c,2)
faceindex=find(d==2) 
end
Run Code Online (Sandbox Code Playgroud)

这就是它的工作原理:

匹配(E,T)

c =

 1     1     0
 0     1     0
 0     0     1
 1     0     0
 0     1     0
 1     0     0
 0     0     0
Run Code Online (Sandbox Code Playgroud)

d =

 2
 1
 1
 1
 1
 1
 0 …
Run Code Online (Sandbox Code Playgroud)

arrays indexing performance matlab matrix

5
推荐指数
1
解决办法
91
查看次数

标签 统计

arrays ×1

indexing ×1

matlab ×1

matrix ×1

performance ×1